Я пытаюсь вставить образец пользователя в мою базу данных.Как вставить несколько присоединенных моделей в Laravel 5
В моей базе данных есть 3 модели, все они должны быть заполнены в одно и то же время. Моделями являются: пользователи, профили и команды.
- У каждого пользователя есть один профиль (отношения один к одному).
- Каждый пользователь может быть частью многих команд, и каждая команда может иметь много пользователей (многие из многих отношений ).
Мои модели настроены правильно с соответствующими belongsTo()
/hasMany()
ссылок и т.д.
В Laravel, мой код выглядит следующим образом:
$user = new User([ 'email' => '[email protected]', 'password' => bcrypt('password1'), 'username'=> 'sampleuser']);
$profile = new Profile(['name' => 'Sample','bio' => 'All about me']);
$team = new Team(['name' => 'SuperAdmins']);
$user->profile()->save($profile);
$user->teams()->attach($team, ['type' => 4]);
Как я могу получить эту работу>? это не работает, когда моя консоль ссылается на 'user_id' cannot be null
при вставке в таблицу профилей.
EDIT: Спасибо, в ответ от Росс Уилсон, я пошел с:
$user = new User([ 'email' => '[email protected]', 'password' => bcrypt('password1'), 'username'=> 'sampleuser']);
$user->save();
$profile = new Profile(['name' => 'Sample','bio' => 'All about me']);
$user->profile()->save($profile);
$team = new Team(['name' => 'SuperAdmins']);
$user->teams()->save($team, ['type' => 4]);
Вы хотите создать команду для каждой вставки пользователя или просто взять команду и прикрепить пользователя к этой команде? – zorx
@zorx В этом случае на самом деле создается новая команда – Ash