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"
            });
    }
);