Вставка одной записи в сидере Laravel
В прошлом уроке мы разобрали
DatabaseSeeder и метод run.
Теперь пропишем в нём вставку
одной строки в таблицу.
Для этого подключим фасад DB -
он уже знаком из раздела
Построитель запросов.
В сидере его подключают через
use в начале файла:
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class DatabaseSeeder extends Seeder
{
public function run(): void
{
// commands
}
}
?>
В run вставим одну запись
в таблицу posts. Синтаксис
такой же, как в уроке
вставки одной записи
через Query Builder. Отличие одно:
код живёт в сидере, а не
в контроллере:
<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
class DatabaseSeeder extends Seeder
{
public function run(): void
{
DB::table('posts')->insert([
'title' => 'title 1',
'slug' => 'post-1',
'text' => 'text text text 1',
]);
}
}
?>
Ключи массива - имена колонок. Значения попадут в соответствующие ячейки таблицы. Если колонку не указать, база подставит значение по умолчанию или вернёт ошибку, если поле обязательное.
Выполним команду на вставку:
php artisan db:seed
Laravel вызовет run,
и запись появится в таблице.
Проверьте результат в
PMA.
Добавьте одну запись в таблицу
с юзерами в run сидера.
Вставьте один пост в таблицу
posts через insert.