【发布时间】:2019-03-23 18:47:16
【问题描述】:
在 Laravel 5.7 中,我有这样一个 Eloquent 查询:
return User::findOrFail($userId)
->dogs()
->setBindings(['', '', '', '', $userId])
->get([
'name',
DB::raw('coalesce(birth_year, ?) <> ? as birth_year')
DB::raw('coalesce(breed, ?) <> ? as breed')
]);
这是一个稍微简化的示例,但我通常需要的是,将绑定传递给 DB::raw()。
我的示例有效,但我不喜欢我需要手动覆盖 $userId 的事实,这应该来自 user-dogs 关系。另外,我不喜欢所有绑定都在一起。
有没有更好的方法来使用DB::raw,就像我的例子一样?我知道有一个selectRaw,但我不想选择所有原始列。
【问题讨论】:
-
能否贴出你的
dogs关系函数来了解user和dogs之间的数据库关系 -
这个关系和我的问题没有任何关系,但是如果你需要它,它是多对多的。
标签: php laravel laravel-5 eloquent