سلام! امروز میخواهیم دربارهی یکی از ویژگیهای مفید لاراول ۱۱ صحبت کنیم که به ما کمک میکند دادههای اولیه را به سادگی در دیتابیس خود اضافه کنیم. این ویژگی Seeder است. Seeder ها قطعات کدی هستند که به ما اجازه میدهند تا رکوردهای پیشفرض را در جدولهای دیتابیس خود ایجاد کنیم. این کار به ما کمک میکند تا بتوانیم از دیتابیسهای تستی و نمایشی به راحتی استفاده کنیم و روند توسعه کاربردهایمان را تسهیل کنیم.
با استفاده از دستوری به نام SeederMakeCommand در این نسخه از لاراول، میتوانیم به راحتی Seeder های جدیدی ایجاد کنیم. در واقع، این دستور به ما این امکان را میدهد که فایلهای Seeder را به سرعت تولید کنیم و محتوای آنها را به روز کنیم. این ویژگی مخصوصاً زمانی که با تعداد زیادی مدل و داده سر و کار داریم، بسیار مفید است.
حالا چگونه میتوانیم از این دستور استفاده کنیم؟ ابتدا باید از خط فرمان بر روی پروژه لاراول خود این دستور را اجرا کنیم. در واقع، با اجرای یک دستور ساده، لاراول یک فایل Seeder جدید برای ما ایجاد میکند که میتوانیم در آن رکوردهای دیتابیس را تعریف کنیم. البته، این فایل معمولاً در دایرکتوری database/seeders ایجاد میشود.
بیایید نگاهی به ساختار این فایل بیندازیم. زمانی که این دستور را اجرا میکنیم، یک کلاس جدید ایجاد میشود که باید در آن روش run() را پیادهسازی کنیم. در این متد، هر آنچه که میخواهیم به دیتابیس اضافه کنیم را تعیین میکنیم. سپس به راحتی میتوانیم این Seeder را از طریق دستور دیگر اجرا کنیم تا دادهها به دیتابیس اضافه شوند.
php artisan make:seeder UserSeeder
این خط کد به شما یک فایل Seeder با نام UserSeeder ایجاد میکند. حالا بیایید نگاهی به محتوای این فایل بیندازیم و ببینیم چگونه میتوانیم آن را پر کنیم.
namespace Database\Seeders;
use Illuminate\Database\Console\Seeds\Seeder;
use Illuminate\Support\Facades\DB;
class UserSeeder extends Seeder
{
public function run()
{
DB::table('users')->insert([
['name' => 'Ali', 'email' => '[email protected]'],
['name' => 'Sara', 'email' => '[email protected]'],
]);
}
}
توضیحات کد
کد:
php
استخراج namespace: این خط برای تعریف namespace فایل Seeder است که در دایرکتوری Database/Seeders قرار دارد.
کلاس Seeder: این خط مشخص میکند که کلاس UserSeeder از کلاس Seeder لاراول ارث برده است.
روش run(): در این متد، ما از DB برای درج رکوردها به جدول users استفاده میکنیم.
درج دادهها: اینجا ما دو رکورد جدید با نام و ایمیل مشخص میکنیم که به جدول users افزوده خواهد شد.