任何人都可以帮我解决如何更新多对多的关系吗?我有任务,用户可以有很多任务,任务可以有很多用户(多对多),我想要实现的是在更新表单管理员可以为多个用户分配特定任务。这是通过HTML多选输入
完成的这是我的控制者:
public function index()
{
// this is in main view
$tasks=Task::all()->load('users');
$userLogin_id=Auth::user()->id;
$users=User::all()->where('id','!=',$userLogin_id);
return view('adminUser.index',compact('tasks','users'));
}
public function store(Request $request)
{
// to create new task and for who it
$task =Task::create($request->all());
$userId=$request['employee'];
$task->users()->attach($userId);
return back();
}
public function edit($task_id)
{
//to go to view that has update code
$task=Task::find($task_id)->load('users');
$userLogin_id=Auth::user()->id;
$users=User::all()->where('id','!=',$userLogin_id);
return view('adminUser.edit',compact('task','users'));
}
public function update(Request $request, $task_id)
{
//to update task
$user_id=$request['employee'];
Task::where('id',$task_id)
->update(['title'=>$request['title'],
'description'=>$request['description'],
'status'=>$request['status'],
'file_path'=>$request['file_path']]);
//what i can do complete this method if it is correct
return redirect('/admin');
}
这是我的用户模型:
public function tasks(){
return $this->belongsToMany('App\Task','Todos','user_id','task_id');
}
这是我的任务模型:
public function users(){
return $this->belongsToMany('App\User','todos','task_id','user_id');
}
答案 0 :(得分:0)
您的意思是当您尝试修改具有关系的表时,您希望更新父/兄弟表。
文档就在这里。
https://laravel.io/forum/10-24-2014-update-two-or-more-table-with-relations
您实际上可以使用指针。
例如
我们有两个模型,User and UserAddress
,认为用户有很多地址,你绑定了$this->hasMany
function address()
关系
在更新用户时,您实际上可以这样做。
foreach($user->address as $index => $address){
$address->update(['updated_at',Carbon::now());
}
我希望这就是你要找的东西。