如何在多对多关系中更新日期

Posted

技术标签:

【中文标题】如何在多对多关系中更新日期【英文标题】:How can update date in many to many relationship 【发布时间】:2018-05-14 20:37:57 【问题描述】:

谁能帮助我了解如何更新多对多关系?我有任务,用户可以有很多任务,任务可以有很多用户(多对多),我想要实现的是在更新表单中管理员可以将多个用户分配给特定任务。这是通过 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');
  

【问题讨论】:

在更新动作中是$request['employee'];用户数组? laravel.com/docs/5.5/… 【参考方案1】:

您的意思是,当您尝试修改具有关系的表时,您想更新父/兄弟表。

文档在这里。

https://laravel.io/forum/10-24-2014-update-two-or-more-table-with-relations

您实际上可以使用指针。

例如。

我们有 2 个模型,User and UserAddress,考虑到用户有很多地址,你将 $this->hasMany 关系绑定到 function address()

在更新用户时,您实际上可以这样做。

foreach($user->address as $index => $address)
    $address->update(['updated_at',Carbon::now());

我希望这就是你要找的。​​p>

【讨论】:

以上是关于如何在多对多关系中更新日期的主要内容,如果未能解决你的问题,请参考以下文章

如何在多对多关系中使用带有可编辑字段的 TabularInline?

学说2:在多对多关系中引用连接表

如何在多对多关系 Laravel 中检索所有相关模型?

在多对多关系中删除正确

laravel 如何在多对多关系中分配给用户?

如何在多对多关系上使用休眠和 JPA 删除孤立实体?