сохранение данных сводных отношений laravel много-много как ноль - PullRequest
0 голосов
/ 10 июля 2019

В моем приложении много-много взаимосвязей, что позволяет связать множество пользователей со многими проектами, и каждая из этих ассоциаций может иметь различную роль.

Project.php

 public function users()
{
    return $this->belongsToMany('App\User')->withPivot('role')->withTimestamps();
}

User.php

public function projects()
{
    return $this->belongsToMany('App\Project')->withPivot('role')->withTimestamps();
}

Я прикрепляю пользователя и его сводные данные вот так,

$project = Project::find($request->input('project_id'));
\DB::enableQueryLog(); // Enable query log
$project->users()->attach($request->input('user_id', ['role' => $request->input('role')]));
dd(\DB::getQueryLog()); // Show results of log

Однако выводимый SQL,

insert into `project_user` (`created_at`, `project_id`, `updated_at`, `user_id`) values (?, ?, ?, ?)

Там нет упоминания о столбце роли, почему это, что я сделал неправильно?

1 Ответ

0 голосов
/ 10 июля 2019

В вашем вызове attach произошла ошибка (скобки закрыты после роли, роль стала значением по умолчанию user_id $request->input($value, $default))

$project->users()->attach($request->input('user_id'), ['role' => $request->input('role')]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...