Laravel是否同步删除并重新创建?
我想了解更多关于Laravel Sync实际工作原理的信息。我有一个包含以下内容的关系表Laravel是否同步删除并重新创建?,laravel,eloquent,Laravel,Eloquent,我想了解更多关于Laravel Sync实际工作原理的信息。我有一个包含以下内容的关系表 组id、用户id、权限、创建时间、更新时间 我正在生成一个数组来传递给sync命令,如下所示 $groups\u数组[$group\u id]=['permission'=>0] 当我这样做,然后调用sync时,它会将现有关系上的created_at和updated_at日期设置为NULL。所需的效果是,只需将现有关系上的权限值更新为0,而不将创建的和更新的值设置为NULL 似乎Sync正在删除所有内容,并
组id、用户id、权限、创建时间、更新时间
我正在生成一个数组来传递给sync命令,如下所示
$groups\u数组[$group\u id]=['permission'=>0]代码>
当我这样做,然后调用sync时,它会将现有关系上的created_at和updated_at日期设置为NULL。所需的效果是,只需将现有关系上的权限值更新为0,而不将创建的和更新的值设置为NULL
似乎Sync正在删除所有内容,并根据发送的数组重新创建关系。有没有一种方法可以告诉我们,更新现有的关系,而不是删除和重新创建它们 默认情况下,Laravel
中的多对多关系不包括时间戳,您需要在关系中定义时间戳
public function users()
{
return $this->belongsToMany(User::class)->withTimestamps();
}
默认情况下,Laravel
中的多对多关系不包括时间戳,您需要在关系中定义时间戳
public function users()
{
return $this->belongsToMany(User::class)->withTimestamps();
}
你能提供更多的代码吗?我尝试了您提到的内容,但它不会覆盖在
处创建的,也不会覆盖在
处更新的时间戳。你确定它们是最初设置的吗?因为默认情况下,Laravel不会设置数据透视行的时间戳。向下查看属于多个关系,它会尝试更新数据透视,因此这可能是同步调用中的错误,也可能是关系滥用。这个问题对于代码来说有点稀疏,所以请包括更多:)你能提供更多的代码吗?我尝试了您提到的内容,但它不会覆盖在
处创建的,也不会覆盖在
处更新的时间戳。你确定它们是最初设置的吗?因为默认情况下,Laravel不会设置数据透视行的时间戳。向下查看属于多个关系,它会尝试更新数据透视,因此这可能是同步调用中的错误,也可能是关系滥用。这个问题对于代码来说有点稀疏,所以请包含更多:)我不确定这是否解决了您的问题,但至少值得一试:)这不是我遇到的问题的确切解决方案。这个问题本身更多地与背包拉威尔处理许多关系的方式有关,但这与答案一样接近,但没有完全改变问题。我不确定这能解决你的问题,但至少值得一试:)这不是我遇到的问题的确切解决方案。这个问题本身更多地与背包拉维尔处理许多关系的方式有关,但这与答案一样接近,但没有完全改变这个问题。