مارک پلاس

تکنولوژی نوین اینترنتی

استفاده از Seeders برای پر کردن پایگاه داده

دسته‌بندی‌ها

استفاده از Seeders برای پر کردن پایگاه داده
Seeders پر کردن پایگاه داده

در لاراول، Seeder‌ها برای پر کردن خودکار پایگاه داده با داده‌ی آزمایشی یا اولیه استفاده می‌شن. مثلاً می‌تونی با Seeder:

  • یک سری کاربر تستی بسازی،

  • جدول دسته‌بندی‌ها رو پر کنی،

  • یا حتی اطلاعات ثابت مثل تنظیمات سایت رو ذخیره کنی.


✅ فصل ۱: ساخت Seeder

bash
php artisan make:seeder CategorySeeder

فایل جدید در مسیر database/seeders/CategorySeeder.php ساخته می‌شه.


✅ فصل ۲: نوشتن کد داخل Seeder

php
use Illuminate\Database\Seeder; use Illuminate\Support\Facades\DB; class CategorySeeder extends Seeder { public function run() { DB::table('categories')->insert([ ['name' => 'وب', 'slug' => 'web'], ['name' => 'موبایل', 'slug' => 'mobile'], ['name' => 'دسکتاپ','slug' => 'desktop'], ]); } }

✅ فصل ۳: اجرای Seeder

برای اجرای یک Seeder خاص:

bash
php artisan db:seed --class=CategorySeeder

یا برای اجرای همه Seederها:

bash
php artisan db:seed

فقط فایل‌هایی که داخل DatabaseSeeder ثبت شدن اجرا می‌شن.


✅ فصل ۴: ثبت Seeder در DatabaseSeeder.php

php
// database/seeders/DatabaseSeeder.php public function run() { $this->call([ CategorySeeder::class, UserSeeder::class, ]); }

✅ فصل ۵: استفاده از Model Factory داخل Seeder

فرض کن یک factory برای مدل User داری:

php
User::factory()->count(10)->create();

مثال کامل:

php
public function run() { \App\Models\User::factory()->count(5)->create([ 'role' => 'admin', ]); }

✅ فصل ۶: اجرای Seeder همزمان با مهاجرت

برای اجرای هم‌زمان migrate و seed:

bash
php artisan migrate --seed

یا پاک کردن کامل و پر کردن مجدد:

bash
php artisan migrate:fresh --seed

✅ فصل ۷: نکات مهم

نکتهتوضیح
بهتره همیشه Factory همراه Seeder استفاده بشهبرای داده‌های تستی داینامیک
می‌تونی از Faker هم استفاده کنیمثلاً ساخت عنوان تصادفی یا ایمیل
می‌تونی شرط بذاری داخل Seederمثلاً فقط اگه دسته‌ای نبود، بساز

✅ مثال کاربردی: Seeder برای تنظیمات سایت

php
DB::table('settings')->insert([ 'site_name' => 'وب‌سایت من', 'email' => 'admin@example.com', ]);

اگه خواستی برای پروژه‌ت یک فایل seeder کامل همراه با factory برای کاربران و دسته‌بندی‌ها بسازم، فقط بگو چند تا نمونه، چه فیلدی، با چه مقداری! 😎

محتوای مرتبط

پست‌های مرتبط