作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在使用 laravel FindOrNew() 来获取带有两个参数的条目,或者创建一个新的:
$option = \App\Option::findOrNew(['user_id' => $this->id , 'option_name' => $optionName]);
我想为名称在 $optionName 中的用户获取一个选项。问题是它只检查 user_id,当 option_name 不存在时不会创建一个新的。相反,它会“找到”与 $optionName 值不匹配的一个。
有人可以说我做错了什么吗?我怎样才能做到这一点?
最佳答案
长话短说:
你用错了方法。您正在寻找 firstOrNew()
方法,而不是 findOrNew()
。
解释:
findOrNew()
是 find()
方法的扩展,它仅适用于 id。它有两个参数,第一个是要查找的 id(或 id 数组),第二个是要检索的列。它将您传入的数组视为要查找的 ID 数组。
firstOrNew()
方法采用一个参数:一组要搜索的属性。它将把数组变成一个 where 子句,然后在查询构建器上调用 first()
。如果没有返回结果,它会返回一个填充了这些属性的新实例。
关于php - 具有多个参数的 Laravel FindOrNew,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30929696/
我正在使用 laravel FindOrNew() 来获取带有两个参数的条目,或者创建一个新的: $option = \App\Option::findOrNew(['user_id' => $thi
我是一名优秀的程序员,十分优秀!