У меня есть таблица users
и отношение один к нулю/одно с таблицей businesses
(users.user_id => business.user_id). На моей таблице users
у меня есть дискриминатор, который говорит мне, является ли пользователь типом бизнеса, и поэтому мне нужно иметь детали и в таблице businesses
.Как передать аргументы фабрикам Laravel?
Я хочу создать своих пользователей с моей фабрикой, которая в настоящее время работает, а затем создавать только бизнес-данные, где дискриминатор указывает на бизнес-аккаунт.
У меня есть три варианта, на мой взгляд:
- Создание фабрики пользователей, а затем с помощью «-> каждый()» сделать некоторые проверки на дискриминатор и создать нового пользователя бизнес, используя фабрику. Однако я не могу перейти к бизнес-заводу
user_id
, который был назначен пользователю. - Сначала создайте пользователей. Затем в моей сеялке «Бизнес» выберите всех пользователей, которые соответствуют «бизнес-дискриминатору». Затем для всех этих пользователей запустите фабрику, которая создает бизнес-данные. Но опять же, мне нужно было бы как-то связать
user_id
уже созданного пользователя с бизнес-заводомuser_id
. - На моей бизнес-заводе создайте нового пользователя и извлеките идентификатор, создав таким образом ссылку между
users.user_id
иbusiness.user_id
. Однако я использую случайный генератор дляuser.user_type
, поэтому даже если у меня есть заполненная таблицаbusinesses
, это может быть для пользователей, у которых дискриминатор «персональный».
Есть ли другой способ? Могу ли я передать аргументы из моего Seeder на завод?
Как я мог пропустить это. Я наблюдал за уроком Ларакаста, и я знаю, что помню об этом. Конечно, это было в документации: http://laravel.com/docs/master/testing#model-factories. Большое спасибо. – Cristian
@ Ссылка Cristian выглядит устаревшей теперь, для 5.4 см. Https://laravel.com/docs/5.4/database-testing#using-factories и прокрутите вниз до «Сохраняющиеся модели» – morph
, как насчет этого? '' 'php $ student-> assignRole ('student'); '' ' im используя пространство/разрешение –