问题描述
阅读手册 https://yajrabox.com/docs/laravel-datatables/master/quick-starter
我尝试将 laravel-datatables 添加到我的 laravel 8 应用程序中,并且我在控制中:
from pathlib import Path
home = str(Path.home())
print("HOME_FOLDER is ",home)
在 app/DataTables/UsersDataTable.php 中:
public function index(UsersDataTable $dataTable)
{
$viewParamsArray = getAppParameters(true,['csrf_token'],[]);
return $dataTable->render('admin.users.index',$viewParamsArray);
}
在 resources/views/admin/users/index.blade.php 中:
<?php
namespace App\DataTables;
use App\Models\User;
use Yajra\DataTables\DataTables;
use Yajra\DataTables\Html\Button;
use Yajra\DataTables\Html\Column;
use Yajra\DataTables\Html\Editor\Editor;
use Yajra\DataTables\Html\Editor\Fields;
use Yajra\DataTables\Services\DataTable;
class UsersDataTable extends DataTable
{
public function dataTable($query)
{
return datatables()
->eloquent($query)
->addColumn('action','users.action');
}
public function query(User $model)
{
\Log::info( '-10 query ::' . print_r( -10,true ) ); // I do not see this line in log
return $model->newQuery()->orderBy('users.id','asc') ->map
(function ($userItem) {
$userItem->slashed_name = addslashes($userItem->name);
$permissionsLabel = '';
\Log::info( varDump($userItem->getPermissionNames(),' -000 $userItem->getPermissionNames()::') );
foreach ($userItem->getPermissionNames() as $v) {
$permissionsLabel .= $v . ',';
}
$userItem->permissions_label = trimRightSubString(trim($permissionsLabel),',');
return $userItem;
})
->all();
}
public function html()
{
\Log::info( '-1 public function html( ::' . print_r( -3,true ) );
// I see this line in log
return $this->builder()
->setTableId('users-table')
->columns($this->getColumns())
->minifiedAjax()
->dom('Bfrtip')
->orderBy(1)
->buttons(
Button::make('create'),Button::make('export'),Button::make('print'),Button::make('reset'),Button::make('reload')
);
}
protected function getColumns()
{
return [
'id','name','email','phone',];
}
protected function filename()
{
return 'Users_' . date('YmdHis');
}
}
结果我只看到带有 id="users-table" 的表头,没有 sql-tracement 到 db。 在页面加载时上传数据有什么遗漏以及如何更好地制作我需要的客户 过滤表单(名称文本、状态/组选择输入)以通过单击“搜索”按钮重新加载数据?
谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)