我一直在学习这个 yajrabox 教程 https://www.tutsmake.com/laravel-8-ajax-crud-using-datatable-tutorial/
作者如何为“company-action”添加一个新列,它是一个刀片文件。
CallStatus
但这是一个有缺陷的代码,因为他刚刚为字符串“company-action”添加了一个新列。
我可以通过在 Controller 中包含 html 代码来完成这项工作,但这会使 Controller 变得臃肿。
public function index()
{
if(request()->ajax()) {
return datatables()->of(Company::select('*'))
->addColumn('action', 'company-action')
->rawColumns(['action'])
->addIndexColumn()
->make(true);
}
return view('companies');
}
如何为此刀片添加一列,company-action.blade.php?
public function index()
{
if(request()->ajax()) {
return datatables()->of(Company::select('*'))
->addColumn('action', '
<a href="javascript:void(0)" data-toggle="tooltip" onClick="editFunc({{ $id }})" data-original-title="Edit"
class="edit btn btn-success edit">Edit</a>
<a href="javascript:void(0);" id="delete-compnay" onClick="deleteFunc({{ $id }})" data-toggle="tooltip"
data-original-title="Delete" class="delete btn btn-danger">Delete
</a>
')
->rawColumns(['action'])
->addIndexColumn()
->make(true);
}
return view('company.company-index');
}
答案 0 :(得分:0)
我刚刚解决了。
public function index()
{
$query = Company::select('*');
if(request()->ajax()) {
return datatables()->of($query)
->addColumn('action', function($row){
return view('company-action')->with("id", $row->id);
})
->rawColumns(['action'])
->addIndexColumn()
->make(true);
}
return view('companies');
}