数据表 - Yajra 返回不正确的字符串 - Laravel 5.8
Datatables - Yajra returning an incorrect string - Laravel 5.8
我正在构建一个列出英国酒吧的相当简单的页面。其中有超过 200,000 个。
我编写了一个简单的 blade 模板,其中 ajax 将数据表调用到控制器 DatatablesController 中的路由。一切正常,但我想添加编辑和查看按钮,所以这是我的控制器功能:
public function getPubs(Request $request)
{
$model = Pub::query();
return DataTables::eloquent($model)
->addColumn('action', function($row){
$btn = '<a href="javascript:void(0)" class="edit btn btn-primary btn-sm">View</a>';
return $btn;
})
->addColumn('edit', function($row){
$editbtn = '<a href="javascript:void(0)" class="edit btn btn-primary btn-sm">edit</a>';
return $editbtn;
})
->make(true);
}
问题是编辑列返回的字符串不正确。这是第一项的 ajax 结果的结尾:
"action": "<a href=\"javascript:void(0)\" class=\"edit btn btn-primary btn-sm\">View</a>",
"edit": "<a href="javascript:void(0)" class="edit btn btn-primary btn-sm">edit</a>"
我在我的方法中看不出任何没有正确返回的原因。
使用 rawColumns()
API 方法防止 Laravel DataTables 编码 HTML 个实体。
例如:
return DataTables::eloquent($model)
->addColumn('action', function($row){
$btn = '<a href="javascript:void(0)" class="edit btn btn-primary btn-sm">View</a>';
return $btn;
})
->addColumn('edit', function($row){
$editbtn = '<a href="javascript:void(0)" class="edit btn btn-primary btn-sm">edit</a>';
return $editbtn;
})
->rawColumns(['action', 'edit'])
->make(true);
我正在构建一个列出英国酒吧的相当简单的页面。其中有超过 200,000 个。
我编写了一个简单的 blade 模板,其中 ajax 将数据表调用到控制器 DatatablesController 中的路由。一切正常,但我想添加编辑和查看按钮,所以这是我的控制器功能:
public function getPubs(Request $request)
{
$model = Pub::query();
return DataTables::eloquent($model)
->addColumn('action', function($row){
$btn = '<a href="javascript:void(0)" class="edit btn btn-primary btn-sm">View</a>';
return $btn;
})
->addColumn('edit', function($row){
$editbtn = '<a href="javascript:void(0)" class="edit btn btn-primary btn-sm">edit</a>';
return $editbtn;
})
->make(true);
}
问题是编辑列返回的字符串不正确。这是第一项的 ajax 结果的结尾:
"action": "<a href=\"javascript:void(0)\" class=\"edit btn btn-primary btn-sm\">View</a>",
"edit": "<a href="javascript:void(0)" class="edit btn btn-primary btn-sm">edit</a>"
我在我的方法中看不出任何没有正确返回的原因。
使用 rawColumns()
API 方法防止 Laravel DataTables 编码 HTML 个实体。
例如:
return DataTables::eloquent($model)
->addColumn('action', function($row){
$btn = '<a href="javascript:void(0)" class="edit btn btn-primary btn-sm">View</a>';
return $btn;
})
->addColumn('edit', function($row){
$editbtn = '<a href="javascript:void(0)" class="edit btn btn-primary btn-sm">edit</a>';
return $editbtn;
})
->rawColumns(['action', 'edit'])
->make(true);