Я пытаюсь сделать запрос с помощью Laravel Query Builder:
<?php
$sql = Model::where('idLanguage',1)
->orderBy(function($query) use ($filter) {
$filter['idRegion'] === 1 ? $query->orderBy('anyField','asc') : null;
$filter['idRegion'] === 0 ? $query->orderBy('otherField','asc'): null;
})
Однако это не работает. Кто-нибудь, пожалуйста, помогите мне!






Попробуйте заменить код следующим:
if ($filter['idRegion']) {
$query->orderBy('anyField','asc');
} else {
$query->orderBy('otherField','asc');
}
Я только что заметил, что параметр, который вы передаете, - это $filters во множественном числе и используйте $filter в единственном числе в теле обратного вызова. Попробуйте изменить это, чтобы он работал. Или просто расскажите, какую ошибку вы получаете.
Я хотел изменить код в функции обратного вызова, которая находится в
orderBy. Вы должны использовать там$query. Но не используйте тернарный оператор так, как вы это делаете, потому что вы не пытаетесь вернуть значение, а скорее фильтруете результаты.