在 laravel 的数据透视表中存储数据
Posted
技术标签:
【中文标题】在 laravel 的数据透视表中存储数据【英文标题】:store data in pivot table in laravel 【发布时间】:2020-09-01 06:53:40 【问题描述】:我有两个表用户表和项目表,它们与多对多关系 project_user 表链接。我想在创建项目时存储项目 ID,并且用户在数据透视表项目用户中,但出现以下错误 array_key_exists():第一个参数应该是字符串或整数
我的项目控制器
public function store(Request $request)
request()->validate([
'name' => 'required',
'detail' => 'required',
'location'=>'required',
'total_cost'=>'required',
'users' => 'required'
]);
$project = new Project;
$project->user_id = auth()->user()->id;
$project->user = $request->input('users');
$users = $request->has('users') ? $request->get('users') : [];
$user2= User::find($users);
$project->users()->attach($request->input([$project ,$project->user_id]));
return redirect()->route('projects.index')
->with('success','Project created successfully.');
【问题讨论】:
【参考方案1】:您在$request->input()
方法上传递Project
模型实例,该方法不是write。
要解决您的问题,请按照这种方式进行
$userIds = $request->get('users'); // Example value like: [9, 8, 29]
$project->users()->attach($userIds);
就是这样!
【讨论】:
以上是关于在 laravel 的数据透视表中存储数据的主要内容,如果未能解决你的问题,请参考以下文章