РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗pplrPmSdIM 145 of 252 menu

Массовая вставка в сидере Laravel

Давайте теперь научимся делать массовую вставку. Это делается через передачу в insert массива массивов - по одному внутреннему массиву на каждую строку таблицы.

Давайте посмотрим на примере. Пусть у нас есть таблица posts и нужно добавить в неё сразу три поста. Тогда в run сидера пропишем:

<?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', ], [ 'title' => 'title 2', 'slug' => 'post-2', 'text' => 'text text text 2', ], [ 'title' => 'title 3', 'slug' => 'post-3', 'text' => 'text text text 3', ], ]); } } ?>

Laravel выполнит одну массовую вставку - быстрее, чем вызывать insert отдельно для каждой строки. У каждого внутреннего массива те же ключи - имена колонок таблицы.

Вставьте в таблицу с постами 5 записей одним вызовом insert.

Добавьте 3 юзера массовой вставкой в сидере.

Дальше - как вынести сидеры в отдельные классы.

Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить