Laravel雄辩的地方

时间:2018-06-21 09:11:26

标签: laravel eloquent laravel-5.5

我在使用此方法时遇到问题,我已经阅读了文档,但我做错了什么,或者不了解它的工作方式,或者是一个错误。

我的控制器中包含以下代码:

$books = Book::whereDoesntHave("author", function ($query) {
    $query->whereNotNull("died_at");
})->get();

现在应该做的是返回所有仍在世的作者的书,以及所有没有作者的书,但这恰恰相反。

我假设whereDoesntHave()应该检查模型是否没有指定的关系,在这种情况下,author模型的列died_at具有特定值。

相反,它将检查author列中没有值的died_at模型。

我对此感到非常困惑,该功能应该如何正常工作?有人可以向我解释一下。

1 个答案:

答案 0 :(得分:0)

您能尝试一下吗,doesntHave("author")检查没有作者的书,而whereHas并附有关闭检查的实时作者

$books = Book::doesntHave("author")->orWhereHas("author", function ($query) {
    $query->whereNotNull("died_at");
})->get();
相关问题