一个用户可以创建、编辑和删除模型。所有其他用户也可以更新该模型(通过喜欢它)。现在,当不是条目创建者的用户更新模型时,创建者会被更新它的用户覆盖。
基本上,这就是将数据推送到 Algolia 索引时发生的情况:
public function toSearchableArray()
{
$user = \Auth::user();
$meetingData = array(
'username' => $user->name,
...
);
return $meetingData;
}
当记录由与创建者不同的用户更新时,$user 不是创建者,而是更新记录的人。这样,创建者就会被覆盖,这是我需要避免的。
是否可以只更新索引记录中的单个值,而不是整个记录?我可以看到更新模型的唯一方法是在控制器中执行以下操作:
$meeting = Meet::find($id);
$meeting->interests = implode(',', $currentLikesArray);
$meeting->save();
但这会更新整个记录,这与创建者用户 ID 不同。