برای درک بهتر استفاده از Seeder در Laravel 8 بهتر است با ذکر یک مثال به استفاده از آن بپردازیم، فرض کنید جدول کاربران در پایگاه داده را در پروژه خود آماده نموده اید و قصد دارید پروژه را با تعدادی از کاربرانی که قبلا در سایت عضو شده اند تست و بررسی نمایید Seeder این امکان را به شما می دهد تا کاربران موردنظر خود را خیلی سریع با دیتای آزمایشی در سایت ایجاد نمایید. بطور کلی از Seeder برای ورود دیتای آزمایشی (Loremipsum) در برنامه Laravel خود استفاده خواهیم نمود.
بعد از ایجاد پایگاه داده و اتصال لاراول به آن ابتدا دستور زیر را برای ایجاد Seeder اجرا کنید:
[pastacode lang=”php” manual=”php%20artisan%20make%3Aseeder%20UsersSeeder%0A” message=”” highlight=”” provider=”manual”/]
پس از اجرای دستور بالا با موفقیت ، یک فایل در این مسیر “database/seed/UsersTableDataSeeder.php” ایجاد می شود. فایل UsersTableDataSeeder.php را بصورت زیر تغییر می دهیم.
[pastacode lang=”php” manual=”%3C%3Fphp%20%0A%0Ause%20Illuminate%5CDatabase%5CSeeder%3B%20%0Ause%20App%5CUser%3B%20%0A%0Aclass%20UsersSeeder%20extends%20Seeder%20%7B%20%0A%09%0A%20%20%20%20%2F**%20%0A%20%20%20%20*%20Run%20the%20database%20seeds.%20%0A%20%20%20%20*%20%0A%20%20%20%20*%20%40return%20void%20*%2F%0A%0A%20%0A%20%20%20public%20function%20run()%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20%20User%3A%3Atruncate()%3B%20%0A%20%20%20%20%20%20%20%20%20%20%20%24users%20%3D%20%5B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%5B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20’name’%20%3D%3E%20’Super%20Admin’%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20’email’%20%3D%3E%20’superadmin%40gmail.com’%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20’password’%20%3D%3E%20’123456’%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20’name’%20%3D%3E%20’User’%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20’email’%20%3D%3E%20’user%40gmail.com’%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20’password’%20%3D%3E%20’13456’%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20’name’%20%3D%3E%20’Client’%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20’email’%20%3D%3E%20’client%40gmail.com’%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20’password’%20%3D%3E%20’13456’%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%20%0A%20%20%20%20%20%20%20%20%20%20%5D%3B%0A%0A%20%20%20%20%20%20%20%20%20%20foreach(%24users%20as%20%24user)%0A%20%20%20%20%20%20%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20User%3A%3Acreate(%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20’name’%20%3D%3E%20%24user%5B’name’%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20’email’%20%3D%3E%20%24user%5B’email’%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20’password’%20%3D%3E%20Hash%3A%3Amake(%24user%5B’password’%5D)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%5D)%3B%0A%20%20%20%20%20%20%20%20%20%20%20%7D%0A%0A%20%20%20%20%7D%0A%09%0A%7D” message=”database/seeds/UsersSeeder.php” highlight=”” provider=”manual”/]
جالب است بدانید، شما می توانید تعیین کنید که یک کلاس seeder خاص اجرا شود برای این منظور کد زیر را در ترمینال خود اجرا نمایید:
[pastacode lang=”php” manual=”php%20artisan%20db%3Aseed%20–class%3DUsersSeeder%0A” message=”” highlight=”” provider=”manual”/]
اکنون می توانید جدول کاربران پایگاه داده خود را بررسی کنید و مشاهده کنید که این 3 رکورد را که در seeder تعریف نموده اید در آن اضافه شده است.
شما می توانید چندین seeder را بصورت هم زمان اجرا کنید، برای این منظور مثال زیر را بررسی فرمایید:
[pastacode lang=”php” manual=”%3C%3Fphp%0A%0Ause%20Illuminate%5CDatabase%5CSeeder%3B%0A%0Aclass%20DatabaseSeeder%20extends%20Seeder%0A%7B%0A%20%20%20%20%2F**%0A%20%20%20%20%20*%20Run%20the%20database%20seeds.%0A%20%20%20%20%20*%0A%20%20%20%20%20*%20%40return%20void%0A%20%20%20%20%20*%2F%0A%20%20%20%20public%20function%20run()%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20%24this-%3Ecall(UsersSeeder%3A%3Aclass)%3B%0A%20%20%20%20%20%20%20%20%2F%2F%20%24this-%3Ecall(PostSeeder%3A%3Aclass)%3B%0A%20%20%20%20%7D%0A%7D” message=”database\seeds\DatabaseSeeder.php” highlight=”” provider=”manual”/]
و بعد از مقدار دهی اولیه کد زیر را اجرا نمایید:
[pastacode lang=”php” manual=”php%20artisan%20db%3Aseed%0A” message=”” highlight=”” provider=”manual”/]
تولید داده های آزمایشی سریع در Laravel
برای ایجاد داده های تستی سریع برای توسعه و آزمایش برنامه خود می توانید بصورت زیر اقدام نمایید.
[pastacode lang=”php” manual=”%3C%3Fphp%0A%20%20%0Ause%20Illuminate%5CDatabase%5CSeeder%3B%0Ause%20App%5CUser%3B%0Ause%20Illuminate%5CSupport%5CFacades%5CHash%3B%0A%0Aclass%20UsersSeeder%20extends%20Seeder%0A%7B%0A%20%20%20%20%2F**%0A%20%20%20%20%20*%20Run%20the%20database%20seeds.%0A%20%20%20%20%20*%0A%20%20%20%20%20*%20%40return%20void%0A%20%20%20%20%20*%2F%0A%20%20%20%20public%20function%20run()%0A%20%20%20%20%7B%0A%20%20%20%20%20%20%20%20for%20(%24i%3D0%3B%20%24i%20%3C%2010%3B%20%24i%2B%2B)%20%7B%20%0A%09%20%20%20%20%09User%3A%3Acreate(%5B%0A%09%20%20%20%20%20%20%20%20%20%20%20%20’name’%20%3D%3E%20str_random(8)%2C%0A%09%20%20%20%20%20%20%20%20%20%20%20%20’email’%20%3D%3E%20str_random(12).’%40mail.com’%2C%0A%09%20%20%20%20%20%20%20%20%20%20%20%20’password’%20%3D%3E%20Hash%3A%3Amake(‘12345678’)%2C%0A%09%20%20%20%20%20%20%20%20%5D)%3B%0A%20%20%20%20%09%7D%0A%20%20%20%20%7D%0A%7D” message=”database\seeds\DatabaseSeeder.php” highlight=”” provider=”manual”/]
سپس برای اجرای این فایل از دستور زیر استفاده می کنیم.
[pastacode lang=”php” manual=”php%20artisan%20db%3Aseed%20%E2%80%93class%3DUsersSeeder” message=”” highlight=”” provider=”manual”/]
امیدوارم این مطلب براتون مفید و جذاب بوده باشه و بتونید از اون به راحتی هرچه تمام استفاده کنید.
شما خیلی ساده میتونید از فکتوری استفاده کنید..