【发布时间】:2020-01-22 23:19:39
【问题描述】:
我正在寻找有关 Laravel Sync 实际工作原理的更多信息。我有一个包含以下内容的关系表
group_id, user_id, permission, created_at, updated_at
我正在生成一个数组以像这样传递给同步命令。
$groups_array[$group_id] = ['permission' => 0];
当我这样做然后调用同步时,它会将现有关系上的 created_at 和 updated_at 日期设置为 NULL。期望的效果是让它仅将现有关系上的权限值更新为 0,而不将 created_at 和 updated_at 值设置为 NULL。
似乎 Sync 正在删除所有内容,只是根据发送的数组重新创建关系。有没有办法告诉它更新现有关系与删除并重新创建它们?
【问题讨论】:
-
你能提供更多代码吗?我已经尝试过您提到的内容,它不会覆盖
created_at或updated_at时间戳。你确定它们是最初设置的吗?因为 Laravel 默认不为数据透视行设置时间戳。 -
向下看属于很多关系,它会尝试更新你的pivot,所以要么是同步调用中的错误,要么是滥用关系。这个问题的代码有点稀疏,所以请包括更多:)