我的应用程序中具有多对多关系,该关系允许许多用户与许多项目关联,并且每个关联都可以扮演不同的角色。
public function users()
{
return $this->belongsToMany('App\User')->withPivot('role')->withTimestamps();
}
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 (?, ?, ?, ?)
没有提到角色专栏,这是为什么,我做错了什么?
答案 0 :(得分:0)
您的attach
调用中出错(角色后括号关闭,角色成为user_id $request->input($value, $default)
的默认值)
$project->users()->attach($request->input('user_id'), ['role' => $request->input('role')]);