我花了几天时间研究数据表和 yajra 包,也就是说我离得到我需要的结果还差得很远,如果有人比我的新手方法知识更多,我将不胜感激!
为了帮助更好地解释,我附上了两张图片,第一张图片是一个已经实现此功能的应用程序,第二张是我为了显示差异而抛出的快速模拟。
我基本上是在尝试向需要该功能的每一列添加自定义 html。我通过返回自定义数组取得了一些小小的成功,如下所示:
foreach ($tasks as $task) {
$checkBox = '<div class="checkbox"><input type="checkbox" value="63"><label></label></div>';
$taskPriority = '<span class="text-info inline-block">Medium</span>';
... so on ...
$row = array(
$checkBox,
$taskPriority,
... so on ...
);
$rows[] = $row;
}
$list['data'] = $rows;
return $list;
虽然这行得通,但我不会说它是最好的方法,并且可以想象有什么更好、更优雅的方法可以做到这一点?
我知道 yajra 有 addColumn 和 editColumn 方法,我用它们来添加一个操作列,因为这是唯一一个似乎呈现任何 html 的方法,除 addColumn(‘action’, ‘blah blah’) 之外的任何其他方法似乎都没有想要呈现 html 而不是将其显示为行中的原始文本。
为了以防万一这对任何人都有帮助,这里是为获取表数据而进行的 Ajax 调用。
$('#taskstable').DataTable({
"processing": true,
"retrieve": true,
"serverSide": true,
'paginate': true,
'searchDelay': 700,
"bDeferRender": true,
"responsive": true,
"autoWidth": false,
"pageLength": 5,
"lengthMenu": [[5, 10, 25, 50, 100], [5, 10, 25, 50, 100]],
ajax: '/tasks/get-tasks'
});
希望有人可以帮助减轻作为新手的压力!谢谢。
原文由 Birdy 发布,翻译遵循 CC BY-SA 4.0 许可协议
兄弟,我能告诉你一些想法,这可能会帮助你获得想要的结果。控制器:
查询脚本
查看页面