محمدسجاد دباغ
3 سال پیش توسط محمدسجاد دباغ مطرح شد
3 پاسخ

انتقال داده از JSON توسط laravel migration

دوستان سلام
چطور میتونم اطلاعات فایل json رو به دیتابیس mysql از طریق فرمان laravel migration انتقال بدم؟
هدف اینه با هر بار php artisan migrate کردن علاوه بر ایجاد جداول ، جدول مورد نظر هم با داده ها پر بشه.
داده الزامی نداره که json باشه.
محتوای داده ها لیست استان ها و شهرهای هر استان هست.
راه دیگری هم اگر پیشنهاد دارید حتما بگید.
متشکرم


ثبت پرسش جدید
حسین شیری نژاد
تخصص : programmer
@hosseinshirinegad98 3 سال پیش آپدیت شد
1

بهترین راه برای این جور کارها استفاده از سیدر و فکتوری در لاراول هست
یا میتونید همونجا داخل مایگریشن بعد اینکه جدول ایجاد شد از دستورات insert فساد DB استفاده کنید


محمدسجاد دباغ
تخصص : برنامه نویس لاراول
@mdabbagh 3 سال پیش مطرح شد
0

@hosseinshirinegad98
متشکرم از راهنمایی ، من با استفاده از ویدئوهای آموزش seeder و factory داده های fake تولید کردم در جدول.

public function definition()
    {
        return [
            'university_name' => $this->faker->name(),
            'university_type' => $this->faker->text(),
            'University_State' => $this->faker->sentence(5),
            'university_city' => $this->faker->text(),
        ];
    }
public function run()
    {
        Universitys::factory()->count(50)->create();
    }

لطفا راهنمایی کنید چطور بجای faker از اطلاعات فایل Json بتونم همشون رو باهم موقع اجرای دستور زیر create کنم.

 php artisan migrate --seed

حسین شیری نژاد
تخصص : programmer
@hosseinshirinegad98 3 سال پیش مطرح شد
0

سلام فایل جیسان رو باید با php تبدیل به آرایه کنید و بعد دیگه اون ارایه رو پیمایش میکنید و میتونید اینسرت تو جدول رو انجام بدید .به فرض شما یه فایل جیسان در مسیر public پروژه دارید به این صورت میشه عمل کرد.

public function run()
{
    $json = file_get_contents(public_path('json.json'));

    $array = json_decode($json, true);

    foreach ($array as $value) {
        \DB::table('universities')->insert([
            'university_name'  => $value['university_name'],
            'university_type'  => $value['university_type'],
            'University_State' => $value['University_State'],
            'university_city'  => $value['university_city'],
        ]);
    }
}

اینجا چون شما داده از قبل دارید دیگه نیاز به فکتوری ندارید و همین سیدر که ران بشه کافی هست.


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام