如何在Laravel 9上使用数据表文件yajra定义DT_RowIndex



我在laravel 9上使用文件datatable yajra定义DT_RowIndex有问题,我不想使用表的id。我想在数据表上定义分页表的行数。这是数据表

上的文件
<?php
namespace AppDataTables;
use AppModelsUser;
use YajraDataTablesHtmlButton;
use YajraDataTablesHtmlColumn;
use YajraDataTablesHtmlEditorEditor;
use YajraDataTablesHtmlEditorFields;
use YajraDataTablesServicesDataTable;
class UsersDataTable extends DataTable
{
public function dataTable($query)
{
return datatables()
->eloquent($query)
->editColumn('actions', function ($data) {
return "<a href=".route('users.edit', $data->id) . " class='btn btn-primary btn-sm'>
Edit
</a> <button class='delete btn btn-danger btn-sm' onclick='deleteFunc(". $data->id .")'> Delete </button>";
})
->rawColumns(['actions']);
}
public function query(User $model)
{
return $this->applyScopes($model->query());
}
public function html()
{
return $this->builder()
->setTableId('usersdatatable-table')
->columns($this->getColumns())
->minifiedAjax()
->dom('Bfrtip')
->orderBy(1)
->buttons(
Button::make('create'),
Button::make('export'),
Button::make('print'),
Button::make('reset'),
Button::make('reload')
);
}

protected function getColumns()
{
return [
Column::make('no')
->addIndexColumn(true),
Column::make('name'),
Column::computed('actions')
->exportable(false)
->printable(false)
->width(200)
->addClass('text-center'),
];
}
protected function filename() : string
{
return 'Users_' . date('YmdHis');
}
}

所以如何定义DT_RowIndex上的文件的代码?

您可以使用addIndexColumnAPI/方法在响应中添加索引列

基于你的代码:

public function dataTable($query)
{
return datatables()
->eloquent($query)
->addIndexColumn()
->editColumn('actions', function ($data) {
return "<a href=".route('users.edit', $data->id) . " class='btn btn-primary btn-sm'>
Edit
</a> <button class='delete btn btn-danger btn-sm' onclick='deleteFunc(". $data->id .")'> Delete </button>";
})
->rawColumns(['actions']);
}

使用addIndexColumn将在您的响应中添加另一列,其列名在index_column配置中设置。默认索引列名为DT_RowIndex

参考:https://yajrabox.com/docs/laravel-datatables/master/index-column

最新更新