Нужно понять как работает DataTable

203
02 января 2022, 23:20

JS:

$(document).ready(function () {
    console.log('sdfsdsdf');
    $('#dt-basic').DataTable( {
        processing: true,
        serverSide: true,
        lengthMenu: [ 10, 25, 50],
        searching: false,
        ordering: false,
        columns: [
            { name: "name", width: "20%", className: "table-text-align-center" },
            { name: "address", width: "20%", className: "table-text-align-center" },
            { name: "status", width: "5%", className: "table-text-align-center" },
            { name: "paymentStatus", width: "5%", className: "table-text-align-center" },
            { name: "startAt", width: "15%", className: "table-text-align-center" },
            { name: "endAt", width: "15%", className: "table-text-align-center" },
            { name: "days", width: "5%", className: "table-text-align-center" },
            { name: "actions", width: "5%", className: "table-text-align-center" },
        ],
        ajax: {
            url:'/account/api/objects',
            type: "GET",
            headers: authHeaders
        },
    } );
});

PHP обработка:

public function getApi(Request $request)
    {
        $authorization = explode(' ', $request->headers->get('authorization'))[1];
        $objects = SportObject::whereHas('user', function ($query) use ($authorization){
            return $query->where('api_token', $authorization);
        })->offset($request->get('start'))->limit($request->get('length'))->get();
        //dd($request->all());
        $data = [];
        foreach ($objects as $object) {
            $data[] = [
                $object->name,
                $object->getAddress(),
                $object->getStatus(),
                $object->getPaymentStatus(),
                Carbon::parse($object->start_at)->format('d-m-Y H:s'),
                Carbon::parse($object->end_at)->format('d-m-Y H:s'),
                $object->pastDuePaymentDays(),
                '<a href="#" class="badge badge-success" title="Редагувати"><i class="fal fa-edit"></i></a>'
            ];
        }
        return response()->json(['data' => $data]);
    }

Мне нужно понять: 1. Как сделать нормальную надпись слева? 2. Как сделать нормальную пагинацию, чтобы отображало количество страниц, не больше чем может быть. + не работают клавиши пагинации вперед и назад

Answer 1

вот какие данные нужно передавать:

return response()->json(['data' => $data,'recordsTotal' => $sportObjectsTotal,   'recordsFiltered' => $sportObjectsTotal]);

recordsTotal и recordsFiltered - одно число

READ ALSO
А нужны ли интерфейсы?

А нужны ли интерфейсы?

Делаю проект на архитектуре: controller ->service (use case) -> repository

206
Как реализовать удаление записи при нажатии на кнопку?

Как реализовать удаление записи при нажатии на кнопку?

Есть цикл в которым выводятся посты:

268
Не удается скачать картинку товара через API МойСклад

Не удается скачать картинку товара через API МойСклад

Получаем список товаров https://onlinemoysklad

157
Ограничить файловые операции PHP в cPanel

Ограничить файловые операции PHP в cPanel

Необходимо ограничить папку, в которой может производить операции PHP код (в данном случае у одного сервера несколько владельцев)

169