Наполнение таблицы в цикле в сидере Laravel
На практике сидеры часто
заполняют таблицы десятками
или сотнями строк - чтобы
проверить списки, пагинацию,
поиск. Цикл с insert
как раз для этого: задаём
нужное число итераций
и получаем столько же записей.
Наполним таблицу users
десятью пользователями.
Поля пока случайные -
email улучшим в уроке
про конкатенацию:
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Str;
class DatabaseSeeder extends Seeder
{
public function run(): void
{
for ($i = 0; $i < 10; $i++) {
DB::table('users')->insert([
'name' => Str::random(10),
'email' => Str::random(10),
]);
}
}
}
?>
Аналогично заполняют posts,
комментарии и другие таблицы.
Для двадцати постов меняют
условие на $i < 20.
<?php
for ($i = 0; $i < 20; $i++) {
DB::table('posts')->insert([
'title' => Str::random(10),
'slug' => Str::random(10),
'text' => Str::random(50),
]);
}
?>
Выполним команду на засев:
php artisan db:seed
Повторный запуск этой команды добавит ещё столько же строк.
Сделайте сидер, который наполнит базу пользователями через цикл.
Сделайте сидер, который наполнит базу постами через цикл.