Здравствуйте, не могу найти материалов, чтобы реализовать с помощью Laravel Eloquent какой-то плюс минус универсальный запрос выборки из базы данных. Чтобы он одинаково хорошо работал и с limit и без него, и с order by и без него, с условием и без и т.д. В обычном php это реализовывалось при помощи подачи в функцию массивов и переменных и в зависимости от них при помощи конкатенации получался составной запрос, а как делать что-то подобное в Laravel? Ведь, в ларе это не просто string строка, которую можно сунуть в query запрос и т.д., здесь же обращение к методам класса идет. Не понимаю, как это реализовать. Спасибо за внимание=)
если правильно понял вопрос - точно так же.... Принцип такой PHP: $all = Users::query(); if (isset($filter['category']) { $all->where('category_id',$filter['category']); } if (isset($limit)) { $all = $all->take($limit); } .... return $all->get();
Зачем? В ларе как раз гораздо удобнее составлять запрос динамически, вызывая методы Query Builder-а, как показал @ADSoft. Не надо конкатенацию делать даже, всё ларка сделает. И везде сам подготовленные запросы поставит. @volnistii11 https://laravel.com/docs/8.x/queries - всё расписано. До момента get Laravel это всё хранит внутри объектов, потом склеивает в строку сам, и не нужно тонну бреда на эту тему писать, как со строкой. И не нужно думать, что сначала написать, where, having, join или group by - в каком бы порядке методы вы не вызвали, в запрос всё будет подставлено в правильные места