Laravel Datatable 中的按钮未呈现
Posted
技术标签:
【中文标题】Laravel Datatable 中的按钮未呈现【英文标题】:Button in Laravel Datatable not rendering 【发布时间】:2018-01-25 08:18:33 【问题描述】:我正在使用 Laravel 5.4 和 Yajra 数据表,下面是我的代码正常工作,但在我创建的第二个操作中,按钮没有显示,而是显示文本本身“<a href="/product/'. $row->id .'/create-price" class="btn btn-primary">Add Price</a>
”我错过了什么?
public function getProductDatatable()
$Product = Product::query();
return Datatables::eloquent($Product)
->addColumn('action', function($row)
return '<a href="/product/'. $row->id .'/edit" class="btn btn-primary">Edit</a>';
)
->addColumn('add_price', function($row)
return '<a href="/product/'. $row->id .'/create-price" class="btn btn-primary">Add Price</a>';
)
->make(true);
前端部分
<script type="text/javascript">
$(function()
$('#product-table').DataTable(
processing: true,
serverSide: true,
ajax: ' url('product/get_product_datatable') ',
columns : [
data: 'id', name: 'id',
data: 'product_code', name: 'product_code',
data: 'action', searchable: false, orderable: false,
data: 'add_price', searchable: false, orderable: false,
data: 'created_at', name: 'created_at',
data: 'updated_at', name: 'updated_at'
]
);
);
</script>
【问题讨论】:
如何在前端渲染视图 @meda 我已经编辑了我的问题并添加了前端js 【参考方案1】:你需要定义rawColumns
:
public function getProductDatatable()
$Product = Product::query();
return Datatables::eloquent($Product)
->addColumn('action', function($row)
return '<a href="/product/'. $row->id .'/edit" class="btn btn-primary">Edit</a>';
)
->addColumn('add_price', function($row)
return '<a href="/product/'. $row->id .'/create-price" class="btn btn-primary">Add Price</a>';
)
->rawColumns(['add_price', 'action'])
->make(true);
【讨论】:
【参考方案2】:我找到了这个issue on github,尝试添加rawColumns
Datatables::eloquent($Product)
->addColumn(..)
->rawColumns(['add_price']);
【讨论】:
以上是关于Laravel Datatable 中的按钮未呈现的主要内容,如果未能解决你的问题,请参考以下文章
行未更新 - 对话框中的更新按钮(由 dataTable 中的按钮打开)
按钮单击事件后 DataTable 不呈现 Gridview