我在使用此方法时遇到问题,我已经阅读了文档,但我做错了什么,或者不了解它的工作方式,或者是一个错误。
我的控制器中包含以下代码:
$books = Book::whereDoesntHave("author", function ($query) {
$query->whereNotNull("died_at");
})->get();
现在应该做的是返回所有仍在世的作者的书,以及所有没有作者的书,但这恰恰相反。
我假设whereDoesntHave()
应该检查模型是否没有指定的关系,在这种情况下,author
模型的列died_at
具有特定值。
相反,它将检查author
列中没有值的died_at
模型。
我对此感到非常困惑,该功能应该如何正常工作?有人可以向我解释一下。
答案 0 :(得分:0)
您能尝试一下吗,doesntHave("author")
检查没有作者的书,而whereHas
并附有关闭检查的实时作者
$books = Book::doesntHave("author")->orWhereHas("author", function ($query) {
$query->whereNotNull("died_at");
})->get();