ind*_*man 2 laravel eloquent laravel-5.8
Laravel 5.8 引入了whereHasMorph查询多态关系。https://laravel.com/docs/5.8/eloquent-relationships#querying-relations
我可能遗漏了一些东西,但它似乎不支持点语法。
在正常的关系中,我可以做这样的事情:
$comments->whereHasMorph(
'video.someRelationship', function ($query) {
$query->where(...);
});
Run Code Online (Sandbox Code Playgroud)
但对于 whereHasMorph 来说这似乎不起作用:
$comments->whereHasMorph(
'commentable.someRelationship',
[Video::class, Audio::class],
function ($query) {
$query->where(...);
}
);
Run Code Online (Sandbox Code Playgroud)
如果确实不支持,有办法解决吗?
whereHasMorph()不(也不能)支持“点语法”。
在闭包内部使用whereHas()嵌套关系:
$comments->whereHasMorph(
'commentable',
[Video::class, Audio::class],
function ($query) {
$query->where(...) // Constraint on "commentable"
->whereHas('someRelationship', function ($query) {
$query->where(...); // Constraint on "someRelationship"
});
}
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5166 次 |
| 最近记录: |