gpt4 book ai didi

Laravel 5.8 whereHasMorph "dot"语法不支持?

转载 作者:行者123 更新时间:2023-12-02 03:11:34 28 4
gpt4 key购买 nike

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() 不(也不能)支持“点语法”。

在闭包内使用 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 "dot"语法不支持?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57444937/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com