我正在尝试在文章上设置收藏夹按钮。以下代码有效...public function favouriteNotfavouriteArticleParent(Request $request){ $data = []; $data['user_id'] = Auth::id(); $data['person_id'] = GetPersonData()['id']; $data['article_id'] = $request->get('article_id'); $data['action'] = $request->get('action'); UserFavourites::updateOrCreate($data,$data);}但是,我希望它首先检查为该文章 ID 设置的任何现有值。如果它有最喜欢的集合并且没有点击,它应该删除最喜欢的表格行。此刻,它只是为最喜欢和最不喜欢添加了一行。我附上了当前 sql 行为的屏幕截图。非常感谢任何帮助!
1 回答
潇湘沐
TA贡献1816条经验 获得超6个赞
UpdateOrCreate有两个参数。第一个参数是要查找的属性数组,第二个参数是要更改的属性数组。如果数据库中没有具有来自第一个数组的属性的行,则数组基本上将被组合以在数据库中创建一个新行。
要实现您的目标,您可以执行以下操作:
UserFavourites::updateOrCreate([
'article_id' => $request->input('article_id'),
'user_id' => auth()->id(),
], [
'person_id' => GetPersonData()['id'],
'action' => $request->input('action'),
]);
上面将查找与 匹配的行,article_id然后user_id更新该行的person_idandaction或(如果该行不存在)创建一个包含所有属性的新行。
- 1 回答
- 0 关注
- 115 浏览
添加回答
举报
0/150
提交
取消