У меня есть модели User, Company
и BusinessUnit
, я уже создал отношения, и я хочу выполнить заполнение базы данных с использованием фабрики моделей с таким условием:
- Каждый пользователь имеет одну компанию
- Каждая Компания принадлежит Пользователю и имеет множество BusinessUnit
- Каждый BusinessUnit принадлежит Компании
Я создал этот код для заполнения Company
и он работает
factory(App\User::class, 5)->create()->each(function ($user) {
$user->company()->saveMany(
factory(App\Company::class, 5)->make()
);
});
Но когда я пытаюсь добавить BusinessUnit
вот так:
factory(App\User::class, 5)->create()->each(function ($user) {
$user->company()->saveMany(
factory(App\Company::class, 5)->make()->each(function ($company) {
$company->businessUnit()->saveMany(
factory(App\BusinessUnit::class, 50)->make()
);
})
);
});
Я получаю эту ошибку:
SQLSTATE [23000]: Нарушение ограничения целостности: 1048 Столбец 'company_id' не может быть пустым (SQL: вставить в business_units
(icon
, name
, description
, address
, company_id
, updated_at
, created_at
) значения (//via.placeholder.com/150, Aspernatur consectetur quia vitae., Odio natus et eaque aut neque. Corrupti illo optio aut quas reiciendis est. Officiis doloribus vitae aliquam cupiditate dolor., 4300 Bartell Fords Elijahton, TX7562, 2018-12-27 11:24:42, 2018-12-27 11:24:42))
IsЕсть ли правильный способ сделать это?Я уже прочитал документацию, но до сих пор не имею понятия об этом.Пожалуйста, помогите.