微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 laravel 中使用 laravel-datatables 我只看到表头

如何解决在 laravel 中使用 laravel-datatables 我只看到表头

阅读手册 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 举报,一经查实,本站将立刻删除。