Laravel是否同步删除并重新创建?

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正在删除所有内容,并

我想了解更多关于Laravel 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不会设置数据透视行的时间戳。向下查看属于多个关系,它会尝试更新数据透视,因此这可能是同步调用中的错误,也可能是关系滥用。这个问题对于代码来说有点稀疏,所以请包含更多:)我不确定这是否解决了您的问题,但至少值得一试:)这不是我遇到的问题的确切解决方案。这个问题本身更多地与背包拉威尔处理许多关系的方式有关,但这与答案一样接近,但没有完全改变问题。我不确定这能解决你的问题,但至少值得一试:)这不是我遇到的问题的确切解决方案。这个问题本身更多地与背包拉维尔处理许多关系的方式有关,但这与答案一样接近,但没有完全改变这个问题。