#php #laravel
#php #laravel
Вопрос:
Итак, у меня есть таблица с функцией поиска в реальном времени. Он отображает все данные, если нет ввода, но для целей пользовательского интерфейса мне нужна paginate()
таблица. Это функция, которую я использую для поиска в реальном времени:
function action(Request $request)
{
if ($request->ajax()) {
$output = '';
$query = $request->get('query');
if ($query != '') {
$data = DB::table('students')
->where('student_id', 'like', '%'.$query.'%')
->orderBy('student_id', 'desc')
->get();
} else {
$data = DB::table('students')
->orderBy('student_id', 'desc')
->get();
}
$total_row = $data->count();
if ($total_row > 0) {
foreach ($data as $row) {
$output .= '
<tr>
<td>'. --- .'</td>
<td>'. --- .'</td>
</tr>
';
}
}
$data = array(
'table_data' => $output,
'total_data' => $total_row
);
echo json_encode($data);
}
}
Этот фрагмент кода, приведенный выше function
, отображает все данные, когда в строке поиска нет ввода:
else {
$data = DB::table('students')
->orderBy('student_id', 'desc')
->get();
}
Я попытался добавить ->paginate()
до и после orderBy()
и get()
, но я получаю ошибку. Единственный способ, который я мог бы использовать ->paginate()
, — это без orderBy()
и get()
, например, так: $data = DB::table('students')->paginate()
, но я хочу использовать orderBy()
.
Если вы знаете, как, пожалуйста, помогите.
Комментарии:
1. Это или
->paginate()
или->get()
, не уверен, почему->orderBy()
не сработает2. С какой ошибкой вы
orderBy('student_id','desc')->paginate(10);
сталкиваетесь?3. Я использовал
->paginate()
, и это сработало. спасибо, что указали на это @brombeer
Ответ №1:
привет, друг, пожалуйста, используйте модель, чтобы получить OrderBy и разбить на страницы
$data = User::orderBy('student_id', 'desc')->paginate(15); //15 default grid size
Комментарии:
1. Бьюсь об заклад, это сработало бы, если бы я использовал модель, но я извлекал данные непосредственно из базы
DB
данных спасибо за ваш ответ