为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel 替换现有数据库值 - 收藏夹

Laravel 替换现有数据库值 - 收藏夹

PHP
慕斯709654 2022-07-09 10:39:50
我正在尝试在文章上设置收藏夹按钮。以下代码有效...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或(如果该行不存在)创建一个包含所有属性的新行。


查看完整回答
反对 回复 2022-07-09
  • 1 回答
  • 0 关注
  • 115 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信