Как применить переменную запроса к замыканию где? - PullRequest
0 голосов
/ 06 мая 2019

У меня есть запрос, хранящийся в переменной.

как применить эту переменную к замыканию whereHas?

$productQuery = ...; // complex query comes from another class

return CategoryModel::whereHas('products', function ($query) use($productQuery) {
    $query->apply($productQuery) // I need to apply product query here but Laravel has not this method
})->get();

1 Ответ

0 голосов
/ 06 мая 2019

После поиска в классе Laravel QueryBuilder я нашел метод mergeConstraintsFrom, и с помощью этого метода я мог повторно использовать свой запрос в замыкании whereHas. окончательный код:

$productQuery = ...; // complex query comes from another class

return CategoryModel::whereHas('products', function ($query) use($productQuery) {
    $query->mergeConstraintsFrom($productQuery);
})->get();
...