Nixtone
@Nixtone

Как в laravel 10 наполнять базу своими значениями через factory?

Делаю crm, там принимаются заказы, и у каждого заказа есть меняющийся статус, у статусов есть своя таблица, в ней заданы значения:
- Принят
- Выполняется
- Готов
- Отказ
- Остановлен

Пока идет разработка, естественно миграции периодически корректируются и обновляются, но каждый раз приходится заполнять таблицу статусов в ручную. На учебном курсе по ларе познакомили с фабриками и сидами, вот подумал задействовать, но не пойму как задействовать, так как все примеры которые смотрел по фабрикам пихают faker, мне он не нужен, мне статусы нужно по быстрому загнать в таблицу. Вопрос в реализации...

В StatusFactory есть метод "definition()" но согласно примерам там описывается одномерный массив. Ну а в классе DatabaseSeeder такой вызов Status::factory(5)->create();

Тоесть в DatabaseSeeder просто генерируется 5 произвольных значений от faker который на каждом вызове подкидывает новые значения, ну а мне то надо свои заранее известные и по порядку.

Тоесть мне нужно описать многомерный массив со статусами в фабрике, но как? И как вызывать это дело в dbseeder ?
  • Вопрос задан
  • 102 просмотра
Пригласить эксперта
Ответы на вопрос 1
@taiberi
StatusSeeder.php

public function run()
{
Status::query()->create(['name' => 'Принят']);
Status::query()->create(['name' => 'Выполняется']);
Status::query()->create(['name' => 'Готов']);
Status::query()->create(['name' => 'Отказ']);
Status::query()->create(['name' => 'Остановлен']);
}

DatabaseSeeder.php

public function run()
{
$this->call([
EventStatusSeeder::class
]);
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы