Yajra Datatables — это мощный пакет Laravel, который предоставляет элегантный способ обработки таблиц данных в ваших приложениях Laravel. Благодаря обширному набору функций и гибкости он упрощает процесс отображения, поиска и управления табличными данными. В этой статье мы рассмотрим различные методы и приемы, позволяющие использовать весь потенциал таблиц данных Yajra в Laravel 10.
- Установка и настройка:
Прежде чем мы углубимся в различные методы, давайте начнем с установки и настройки таблиц данных Yajra в вашем проекте Laravel 10. Откройте терминал и выполните следующие команды:
composer require yajra/laravel-datatables-oracle
Далее опубликуйте файл конфигурации:
php artisan vendor:publish --tag=datatables
- Основное использование:
Для начала давайте создадим простой пример использования таблиц данных 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.
- Настройка столбцов:
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
, чтобы отформатировать дату.
- Добавление кнопок действий.
Часто нам необходимо добавлять кнопки действий для выполнения таких операций, как редактирование, удаление или просмотр сведений. 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.
- Реализация обработки на стороне сервера:
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.