Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 5 拉威尔5号>;触摸数据透视表(多对多)_Laravel 5_Pivot Table - Fatal编程技术网

Laravel 5 拉威尔5号>;触摸数据透视表(多对多)

Laravel 5 拉威尔5号>;触摸数据透视表(多对多),laravel-5,pivot-table,Laravel 5,Pivot Table,为什么我的透视表中的updated_at字段不更新,并给出以下设置 模型 控制器 $conversation = Conversation::find($id); $conversation->users()->touch(); 就我所知,最后一行还应该更新数据透视表updated_at字段,不是吗 但事实并非如此。现在,我必须通过数据库查询手动执行此操作。我认为最好的方法是: $conversation->users()->updateExistingPivot(

为什么我的透视表中的updated_at字段不更新,并给出以下设置

模型

控制器

$conversation = Conversation::find($id);
$conversation->users()->touch();
就我所知,最后一行还应该更新数据透视表updated_at字段,不是吗


但事实并非如此。现在,我必须通过数据库查询手动执行此操作。

我认为最好的方法是:

$conversation->users()->updateExistingPivot(
    $conversation->users()->get(),
    ['updated_at' => date('Y-m-d H:i:s')]
);

它对我很有用(Laravel 5.7)。

这有什么用吗?您是否收到错误?它会在忽略透视表的同时,在字段处触摸用户更新的_。没有错误。如果将
->withPivot()
添加到
users()
函数,然后尝试
$conversation->users()->pivot->touch()它有什么作用吗?还是完全错了?好的。我试图在没有数据库的情况下测试这个,所以这都是理论上的lol。。。尝试
$users=$conversation->users()->get()
,然后循环这些用户并访问其
pivot
属性:
foreach($user作为$user的用户){$user->pivot->touch();}
您可以这样做,或者您可能必须设置每个
pivot->updated_at=date(“Y-m-d”)或任何您想要的格式。让我知道这些方法是否有效。好吧,这很遗憾,但是你帮助我更好地理解了如何访问pivot模型。由于查询量很大,我现在坚持使用DB类,直到找到一个更“优雅的laravel开箱即用解决方案”:-)谢谢Tim Lewis。
$conversation->users()->updateExistingPivot(
    $conversation->users()->get(),
    ['updated_at' => date('Y-m-d H:i:s')]
);