برای درک بهتر استفاده از Seeder در Laravel 8 بهتر است با ذکر یک مثال به استفاده از آن بپردازیم، فرض کنید جدول کاربران در پایگاه داده را در پروژه خود آماده نموده اید و قصد دارید پروژه را با تعدادی از کاربرانی که قبلا در سایت عضو شده اند تست و بررسی نمایید Seeder این امکان را به شما می دهد تا کاربران موردنظر خود را خیلی سریع با دیتای آزمایشی در سایت ایجاد نمایید. بطور کلی از Seeder برای ورود دیتای آزمایشی (Loremipsum) در برنامه Laravel خود استفاده خواهیم نمود.

بعد از ایجاد پایگاه داده و اتصال لاراول به آن ابتدا دستور زیر را برای ایجاد Seeder اجرا کنید:

php artisan make:seeder UsersSeeder

پس از اجرای دستور بالا با موفقیت ، یک فایل در این مسیر “database/seed/UsersTableDataSeeder.php” ایجاد می شود. فایل UsersTableDataSeeder.php را بصورت زیر تغییر می دهیم.

database/seeds/UsersSeeder.php
<?php 

use Illuminate\Database\Seeder; 
use App\User; 

class UsersSeeder extends Seeder { 
	
    /** 
    * Run the database seeds. 
    * 
    * @return void */

 
   public function run() { 
           User::truncate(); 
           $users = [ 
            [ 
              'name' => 'Super Admin',
              'email' => 'superadmin@gmail.com',
              'password' => '123456',
            ],
            [
              'name' => 'User',
              'email' => 'user@gmail.com',
              'password' => '13456',
            ],
             [
              'name' => 'Client',
              'email' => 'client@gmail.com',
              'password' => '13456',
            ] 
          ];

          foreach($users as $user)
          {
              User::create([
               'name' => $user['name'],
               'email' => $user['email'],
               'password' => Hash::make($user['password'])
             ]);
           }

    }
	
}

جالب است بدانید، شما می توانید تعیین کنید که یک کلاس seeder خاص اجرا شود برای این منظور کد زیر را در ترمینال خود اجرا نمایید:

php artisan db:seed --class=UsersSeeder

اکنون می توانید جدول کاربران پایگاه داده خود را بررسی کنید و مشاهده کنید که این 3 رکورد را که در seeder تعریف نموده اید در آن اضافه شده است.

شما می توانید چندین seeder را بصورت هم زمان اجرا کنید، برای این منظور مثال زیر را بررسی فرمایید:

databaseseedsDatabaseSeeder.php
<?php

use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        $this->call(UsersSeeder::class);
        // $this->call(PostSeeder::class);
    }
}

و بعد از مقدار دهی اولیه کد زیر را اجرا نمایید:

php artisan db:seed

تولید داده های آزمایشی سریع در Laravel

برای ایجاد داده های تستی سریع برای توسعه و آزمایش برنامه خود می توانید بصورت زیر اقدام نمایید.

databaseseedsDatabaseSeeder.php
<?php
  
use Illuminate\Database\Seeder;
use App\User;
use Illuminate\Support\Facades\Hash;

class UsersSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        for ($i=0; $i < 10; $i++) { 
	    	User::create([
	            'name' => str_random(8),
	            'email' => str_random(12).'@mail.com',
	            'password' => Hash::make('12345678'),
	        ]);
    	}
    }
}

سپس برای اجرای این فایل از دستور زیر استفاده می کنیم.

php artisan db:seed –class=UsersSeeder

امیدوارم این مطلب براتون مفید و جذاب بوده باشه و بتونید از اون به راحتی هرچه تمام استفاده کنید.

علاقه ام از سالها قبل برنامه نویسی تحت وب بوده و هست ، همیشه سعی می کنم علاقه مندی های خودم رو در ضمیه برنامه نویسی با همه به اشتراک بذارم، مطالب اینجا بتونه مشکل یه نفر رو هم برطرف کنه اون حس خوب رضایت رو در من بوجود میاره ;)

ارسال نظر