Вернуть ключевое слово в запросе обратного вызова - PullRequest
0 голосов
/ 25 марта 2019

Нужно ли писать ключевое слово return при использовании whereHas в laravel.

Например, вернуть $ query-> where ('status', 1);

$posts = App\Post::whereHas('comments', function ($query) {
    $query->whereHas('content', function ($query){
       $query->where('status', 1);
    });
})->get();

Нужно ли нам писать return в каждом обратном вызове запроса?

Ответы [ 3 ]

2 голосов
/ 25 марта 2019

Нет, вы изменяете экземпляр построителя запросов, передаваемый вашему закрытию, вызывая $query->where('status', 1);. Поскольку объекты передаются по ссылке и where() мутирует этот экземпляр, нет необходимости возвращать что-либо.

0 голосов
/ 25 марта 2019

Нет. Потому что у вас есть один и тот же объект (и изменить его) внутри каждой функции. Нет необходимости возвращаться.

0 голосов
/ 25 марта 2019

Нет необходимости. Также вы можете использовать whereHas с вложенными отношениями. Пример:

$posts = App\Post::whereHas('comments.content', function ($query) {
    $query->where('status', 1);
})->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...