Таким образом, у меня есть часть API и работает, но я застрял на нескольких вещах. Я работаю с контроллерами REST Laravel и люблю использовать такие методы, как Response::eloquent($query);
Но, используя это:
Во-первых, я бы посоветовал вам следить за тем, чтобы Teach a dog to REST [Link broken] для получения дополнительной информации о форматировании маршрутов REST.
Что касается ваших вопросов:
Input::get() and Input::all()
как указано в файлах laravel и файлах cookie . Возможно, вам также придется проверять входящие данные с помощью класса валидатора laravel. Скажем, вы получили поля id и order_by из ввода, как указано в вашем примере:
$id = Input::get('id'); $order_criteria = Input::get('order_by');
с использованием Fluent Query Builder
DB::table('dbtable')->where('id', '=', $id)->order_by($order_criteria, 'desc')->first();
// Используя first (), так как мы уверены, что получаем только один результат, для других критериев, где может быть возвращен более чем результат, вы можете использовать -> get ().
Я выпустил пакет для этого.
Вы можете проверить это: https://github.com/selahattinunlu/laravel-api-query-builder
Страница wiki: https://github.com/selahattinunlu/laravel-api-query-builder/wiki
Этот пакет создает запрос с параметрами url.
Пример:
/ API / пользователей? Имя = се * и возраст! = 18 & order_by = возраст, по возрастанию и предел = 2 & столбцы = имя, возраст, CITY_ID и включает в себя = город
И итоговый запрос
Users::with(['city'])->select(['name', 'age', 'city_id']) ->where('age', '!=', 18) ->where('name', 'like', 'se%') ->orderBy('age', 'asc') ->take(2)
Применение:
$queryBuilder = new QueryBuilder(new User, $request); return response->json([ 'data' => $queryBuilder->build()->paginate(), . . ]);
Это все.