Laravel updateOrInsert 的第一个参数可以用作 OR 而不是对值进行配对吗
Posted
技术标签:
【中文标题】Laravel updateOrInsert 的第一个参数可以用作 OR 而不是对值进行配对吗【英文标题】:Can the first argument of Laravel updateOrInsert be used as OR instead of pair the values 【发布时间】:2021-03-10 18:26:28 【问题描述】:来自 Laravel 文档:
updateOrInsert 方法将尝试使用第一个参数的列和值对来定位匹配的数据库记录。
DB::table('users')
->updateOrInsert(
['email' => 'john@example.com', 'name' => 'John'],
['votes' => '2']
);
是否可以不同时检查两条记录是否为真,例如'email' => 'john@example.com'
和'name' => 'John'
,我们只检查一个这样的'email' => 'john@example.com'
或'name' => 'John'
这样的事情是不可能的(或者我不知道怎么做)
DB::table('users')
->updateOrInsert(
['email' => 'john@example.com','OR', 'name' => 'John'],
['votes' => '2']
);
这是可以通过某种方式完成的吗?
【问题讨论】:
根据代码,在这种情况下您不能使用 OR:github.com/laravel/framework/blob/master/src/Illuminate/… 不,你不能。您需要进行 2 次查询 【参考方案1】:简短的回答:没有
根据code,只有一个where
,它需要一个属性数组,所以你不能在这里做一个OR子句。
【讨论】:
以上是关于Laravel updateOrInsert 的第一个参数可以用作 OR 而不是对值进行配对吗的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Carbon 获取上个月的第一天和最后一天 - Laravel
如何在 CodeIgniter 中为 Laravel 中的第一个项目定义子域路由?