Laravel 5.8 不支持 whereHasMorph "dot" 语法?
Laravel 5.8 whereHasMorph "dot" syntax not supported?
Laravel 5.8 引入了 whereHasMorph
用于查询多态关系。 https://laravel.com/docs/5.8/eloquent-relationships#querying-relations
我可能遗漏了什么,但它似乎不支持点语法。
在正常的关系中,我可以这样做:
$comments->whereHasMorph(
'video.someRelationship', function ($query) {
$query->where(...);
});
但是 whereHasMorph 似乎不起作用:
$comments->whereHasMorph(
'commentable.someRelationship',
[Video::class, Audio::class],
function ($query) {
$query->where(...);
}
);
如果确实不支持,有什么解决办法吗?
whereHasMorph()
不(也不能)支持 "dot syntax"。
在嵌套关系的闭包内使用 whereHas()
:
$comments->whereHasMorph(
'commentable',
[Video::class, Audio::class],
function ($query) {
$query->where(...) // Constraint on "commentable"
->whereHas('someRelationship', function ($query) {
$query->where(...); // Constraint on "someRelationship"
});
}
);
Laravel 5.8 引入了 whereHasMorph
用于查询多态关系。 https://laravel.com/docs/5.8/eloquent-relationships#querying-relations
我可能遗漏了什么,但它似乎不支持点语法。
在正常的关系中,我可以这样做:
$comments->whereHasMorph(
'video.someRelationship', function ($query) {
$query->where(...);
});
但是 whereHasMorph 似乎不起作用:
$comments->whereHasMorph(
'commentable.someRelationship',
[Video::class, Audio::class],
function ($query) {
$query->where(...);
}
);
如果确实不支持,有什么解决办法吗?
whereHasMorph()
不(也不能)支持 "dot syntax"。
在嵌套关系的闭包内使用 whereHas()
:
$comments->whereHasMorph(
'commentable',
[Video::class, Audio::class],
function ($query) {
$query->where(...) // Constraint on "commentable"
->whereHas('someRelationship', function ($query) {
$query->where(...); // Constraint on "someRelationship"
});
}
);