点击列编辑而不是编辑按钮

问题描述:

我正在使用Yajra数据表,我有一个问题,如标题所说。点击列编辑而不是编辑按钮

这里是我的控制器至今:

public function makeActionButtonsForDatatable($model) 
{ 

    if ($model->employed_type == DriverEmployedType::PARTTIME) { 

     return '<a href="' . route('parttimeavailable.create', ['driver' => $model->id]) . '" 
        class="btn btn-default btn-xs"></span>Set Parttime 
       </a> 
       <a href="' . route('driver.edit', ['driver' => $model->id]) . '" 
        class="btn btn-primary btn-xs"><span class="fa fa-pencil"></span> Edit 
       </a> 
       <a id="delBtn" data-url="'.route('driver.destroy', ['driver' => $model->id]).'" 
        data-toggle="modal" data-target=" #modalDelete" data-title="Confirmation" data-table-name="#datatable" data-message="Do you want to delete this record?" 
        class="btn btn-danger btn-xs delete" > 
        <span class="fa fa-trash-o"></span> Delete 
       </a>'; 

    } 

    switch ($model->status) { 
     default: 
      return' 
       <a href="' . route('driver.edit', ['driver' => $model->id]) . '" 
        class="btn btn-primary btn-xs"><span class="fa fa-pencil"></span> Edit 
       </a> 
       <a id="delBtn" data-url="'.route('driver.destroy', ['driver' => $model->id]).'" 
        data-toggle="modal" data-target=" #modalDelete" data-title="Confirmation" data-table-name="#datatable" data-message="Do you want to delete this record?" 
        class="btn btn-danger btn-xs delete" > 
        <span class="fa fa-trash-o"></span> Delete 
       </a> 
      '; 
      break; 
    } 
} 

public function makeDatatable($obj) { 

    return Datatables::of($obj) 
    ->addColumn('action', function ($model) { 
      return $this->makeActionButtonsForDatatable($model); 
    }) 
    ->editColumn('full_name', function($model) { 
      return '<a href="' . route('driver.edit', ['driver' => $model->full_name]) . '"</a>'; 
    }) 
    ->editColumn('employed_type', function($model){ 
     return DriverEmployedType::getString($model->employed_type); 
    }) 
    ->make(true); 
} 

这是我的数据表中的代码至今:

$(document).ready(function(){ 
    var datatable = $('#datatable').DataTable(
    { 
     dom: "lrtip", 
     responsive: true, 
     processing: true, 
     serverSide: true, 
     bSortCellsTop: true, 
     ajax: { 
      url: "{{ route('driver.list') }}", 
      data: { '_token' : '{{csrf_token() }}'}, 
      type: 'POST', 
     }, 
     columns: [ 
     { data: 'full_name', name: 'full_name', className: 'text-center', }, 
     { data: 'mobile', name: 'mobile', className: 'text-center', }, 
     { data: 'nric', name: 'nric', className: 'text-center', }, 
     { data: 'license', name: 'license', className: 'text-center', }, 
     { data: 'employed_type', name: 'employed_type', className: 'text-center', }, 
     { data: 'action', name: 'action', className: 'text-center', orderable: false, searchable: false }, 
     ], 
    }); 
}); 

它没有工作,也没有显示我的全名列。我想要的是一旦我点击它的名字去编辑与该驱动程序ID的形式。

有什么想法吗?

+0

尝试[x-editable](https://vitalets.github.io/x-editable/) –

+0

那不是我想要的。 –

我想你错过关闭<a>的全名栏,请尝试以下代码:

public function makeDatatable($obj) { 

    return Datatables::of($obj) 
    ->addColumn('action', function ($model) { 
      return $this->makeActionButtonsForDatatable($model); 
    }) 
    ->editColumn('full_name', function($model) { 
      return '<a href="' . route('driver.edit', ['driver' => $model->id]) . '">'. $model->full_name .'</a>'; 
    }) 
    ->editColumn('employed_type', function($model){ 
     return DriverEmployedType::getString($model->employed_type); 
    }) 
    ->make(true); 
} 

让我知道,如果你仍然面临着同样的!

+0

它的工作原理,但带有这样的ID:return''. $model->full_name .''; btw非常感谢你:) –

+0

是的,我更新了我的答案。干杯! –