$offset = $app['request']->get('offset', 0); $students = Student::limit($limit)->offset($offset)->orderBy('created_at', 'desc')->get(); return $app->json($modelsToArray($students, ['level'])); }); /** * Count of students */ $rest->get('/students/count', function () use($app) { $count = Student::all()->count(); return $app->json(['count' => $count]); }); /** * Student by id */ $rest->get('/students/{id}', function ($id) use($app, $modelToArray) { $model = Student::findOrFail($id); return $app->json($modelToArray($model, ['level'])); })->assert('id', '\\d+'); /** * Search students */ $rest->get('/students/search', function () use($app) { $q = addslashes($app['request']->get('query')); $search = strtolower($q) . '%'; $result = DB::select("SELECT `id`\n FROM `students`\n WHERE `name` LIKE '{$search}';\n "); $result = array_map(function ($itm) { return $itm['id']; }, $result); $students = Student::whereIn('id', $result)->get(); return $app->json($students); });