حسین غلامیان
حسین غلامیان
خواندن ۱ دقیقه·۳ سال پیش

seeder در لاراول چیست


فرض کنید به تازگی یک سایت خبری ساخته اید در صفحه اول سایت میخواهید 10 پست برتر را نشان دهید اما دیتابیس شما خالی است

در لاراول seeders وظیفه این را دارد که دیتا بیس شما را با اطلاعات غیر واقعی پر کند برای استفاده از این ویژگی لاراول ابتدا باید یک seeder بسازید برای این کار در ترمینال دستور زیر را وارد کنید

php artisan make:seeder PostSeeder

نام دهی seeder ها باید سه صورت منفرد باشد.

بعد از اجرای دستور فوق به پوشه ی database/seeders بروید وارد فایلی که ساخته اید بشوید کلاس PostSeeder دارای یک متد به اسم run میباشد وقتی این کلاس به کمک artisan فراخئانی شود متد run اجرا میشود حال برای اینکه در دیتا بیس 10 رکورد ذخیره کنیم فقط کافی است در متد run کدی مانند زیر بنویسیم:

<?php namespace Database\Seeders; use Illuminate\Database\Console\Seeds\WithoutModelEvents; use Illuminate\Database\Seeder;\ use Illuminate\Support\Facades\DB; use Illuminate\Support\Str; class PostSeeder extends Seeder { public function run() { for ($i=1; $i <11 ; $i++) { DB::table('posts')->insert([ 'id' => $i , 'title' => 'Post '. $i, ]); } } }

حال برای اجرای seeder ها باید وارد فایل DatabaseSeeders در پوشه ی database/seeders بشویم و seeder هایی را که ساخته ایم call کنیم

<?php namespace Database\Seeders; use Illuminate\Database\Seeder; class DatabaseSeeder extends Seeder { public function run() { $this->call([ PostSeeder::class, ]); } }

سپس برای اینکه seeder هایی که کال کردیم اجرا شوند فقط کافیست دستور زیر را در ترمینال وارد کنیم

php artisan db:seed

یا اینکه میتوانیم بدون کال کردن seeder ها در کلاس DatabaseSeeders ان ها را مستقیم اجرا کنیم برای این کار از دستور زیر استفاده میکنیم

php artisan db:seed --class=PostSeeder



نویسنده : حسین غلامیان

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