Освоение таблиц данных Yajra в Laravel 10: подробное руководство

Yajra Datatables — это мощный пакет Laravel, который предоставляет элегантный способ обработки таблиц данных в ваших приложениях Laravel. Благодаря обширному набору функций и гибкости он упрощает процесс отображения, поиска и управления табличными данными. В этой статье мы рассмотрим различные методы и приемы, позволяющие использовать весь потенциал таблиц данных Yajra в Laravel 10.

  1. Установка и настройка:
    Прежде чем мы углубимся в различные методы, давайте начнем с установки и настройки таблиц данных Yajra в вашем проекте Laravel 10. Откройте терминал и выполните следующие команды:
composer require yajra/laravel-datatables-oracle

Далее опубликуйте файл конфигурации:

php artisan vendor:publish --tag=datatables
  1. Основное использование:
    Для начала давайте создадим простой пример использования таблиц данных Yajra в Laravel 10. Предположим, у нас есть таблица «пользователи» в нашей базе данных, и мы хотим отобразить данные пользователя в таблица данных.

Сначала определите маршрут в файле web.php:

Route::get('/users', 'UserController@index')->name('users.index');

Далее создайте новый контроллер под названием UserController:

namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
use Yajra\DataTables\DataTables;
class UserController extends Controller
{
    public function index(Request $request)
    {
        if ($request->ajax()) {
            $users = User::query();
            return DataTables::of($users)->make(true);
        }
        return view('users.index');
    }
}

В методе indexмы проверяем, является ли запрос запросом AJAX. Если да, мы извлекаем пользователей из базы данных и передаем их классу DataTables. Наконец, мы возвращаем ответ в формате JSON.

  1. Настройка столбцов:
    Yajra Datatables позволяет нам настраивать столбцы, отображаемые в таблице данных. Мы можем добавлять дополнительные столбцы, изменять существующие или вообще исключать определенные столбцы. Давайте посмотрим пример:
return DataTables::of($users)
    ->addColumn('full_name', function ($user) {
        return $user->first_name . ' ' . $user->last_name;
    })
    ->editColumn('created_at', function ($user) {
        return $user->created_at->format('d/m/Y');
    })
    ->make(true);

В этом примере мы добавили специальный столбец full_name, который объединяет имя и фамилию пользователя. Мы также изменили столбец created_at, чтобы отформатировать дату.

  1. Добавление кнопок действий.
    Часто нам необходимо добавлять кнопки действий для выполнения таких операций, как редактирование, удаление или просмотр сведений. Yajra Datatables предоставляет удобный способ добавления кнопок действий в каждую строку. Вот пример:
return DataTables::of($users)
    ->addColumn('actions', function ($user) {
        return '<a href="' . route('users.edit', $user->id) . '">Edit</a> |
                <a href="' . route('users.delete', $user->id) . '">Delete</a>';
    })
    ->rawColumns(['actions'])
    ->make(true);

В этом примере мы добавили столбец actions, содержащий ссылки редактирования и удаления для каждого пользователя. Метод rawColumnsсообщает Yajra Datatables отображать HTML-теги как необработанный HTML.

  1. Реализация обработки на стороне сервера:
    Yajra Datatables поддерживает обработку на стороне сервера, что полезно при работе с большими наборами данных. Вместо загрузки всех данных одновременно, он извлекает данные динамически, когда пользователь взаимодействует с таблицей данных. Вот пример:
return DataTables::of($users)
    ->addColumn('actions', function ($user) {
        return '<a href="' . route('users.edit', $user->id) . '">Edit</a> |
                <a href="' . route('users.delete', $user->id) . '">Delete</a>';
    })
    ->rawColumns(['actions'])
    ->filter(function ($query) use ($request) {
        if ($request->has('search') && !empty($request->input('search')['value'])) {
            $searchValue = $request->input('search')['value'];
            $query->where('name', 'like', '%' . $searchValue . '%');
        }
    })
    ->make(true);

В этом примере мы добавили серверный фильтр для поиска пользователей по имени. Метод filterпозволяет нам настроить запрос на основе входных данных поиска.

Yajra Datatables — это фантастический пакет Laravel, который упрощает процесс обработки таблиц данных в Laravel 10. В этой статье мы рассмотрели различные методы и приемы, включая установку и настройку, базовое использование, настройку столбцов, добавление кнопок действий и реализацию сервера. -боковая обработка. Используя эти методы, вы можете создавать мощные и интерактивные таблицы данных в своих приложениях Laravel 10.