【发布时间】:2021-09-10 17:54:33
【问题描述】:
我在我的 laravel 8 应用程序中设置了一个 Yajra 数据表。我想在 addColumn() 函数的 Confirm 消息中以 $row->hl_name 的形式访问列值 hl_name,如下所示:
->addColumn('action', static function($hosp){
$btn ='<a href="'.route('HospitalDeleteRoute', $hosp->hl_id).'" class="btn btn-danger btn-sm" onclick="onclick="return confirm('/'Are you sure you want to delete the hospital: {{'.$row->hl_name.'}})>Delete</a>';
return $btn;})
但是,这完全绕过了确认消息并执行删除。如果我将 $row->hl_name 更改为 $row->hl_id,消息框将成功显示相应的 Id 值。我是否需要以某种方式将数据通知到 Datatable 的行?我在控制器中显示我的数据表,如下所示:
public function index(HospitalDataTable $dataTable)
{
return $dataTable->render('hospitals.index');
}
我没有通过脚本启动我的数据表,因为它会发出警告/错误:
// $('#hospital-table').DataTable({
// paging: false,
// searching: false,
// ordering: false,
// lengthMenu: [[5, 10, 25, 50, 100, 500], [5, 10, 25, 50, 100, 500]],
// });
取消上面的注释会出错
DataTables 警告:table id=hospital-table - 无法重新初始化 DataTable。
dataTable成功实现,数据行随Delete动作一起显示,删除操作成功执行。但是,确认消息没有显示要删除的医院名称。 以下是我的 DataTable 类的主要 3 个功能。如果有人可以指导我,我将不胜感激。
public function dataTable($query)
{
return datatables()->eloquent($query)
->addIndexColumn()
->addColumn('action', static function($hosp){
$btn ='<a href="'.route('HospitalDeleteRoute', $hosp->hl_id).'" class="btn btn-danger btn-sm" onclick="onclick="return confirm('/'Are you sure you want to delete the hospital: {{'.$row->hl_name.'}})>Delete</a>';
return $btn;})
->rawColumns(['action']);
}
public function query(Hospital $model)
{
return $model->newQuery()
->join('district', function($join) {
$join->on('district.dt_id', '=', 'hospital.dt_id');
})
->join('tehsil', function($join) {
$join->on('tehsil.teh_id', '=', 'hospital.teh_id');
})
->select('hospital.*', 'district.dt_name', 'tehsil.teh_name');
}
public function html()
{
return $this->builder()
->setTableId('hospital-table')
->columns($this->getColumns())
->minifiedAjax()
->orderBy(1);
}
protected function getColumns()
{
return [
Column::make('DT_RowIndex')->title('S/No')->orderable(false)->searchable(false),
Column::make('hl_name')->title('Hospital Name'),
Column::make('teh_name')->title('Tehsil'),
Column::make('dt_name')->title('District'),
Column::make('Assessment_Status')->title('Assessment Status'),
Column::computed('action')->title('Action')->exportable(false)->printable(false)->orderable(false)->searchable(false)->width(60)->addClass('text-center')
];
}
【问题讨论】:
-
等待帮助!
标签: laravel eloquent yajra-datatable