Laravel 数据表:无法访问更改的主键列

问题描述

我在 laravel yajra datatables 工作,一切正常,但如果我使用默认主键列作为 id 但为了安全起见,我只是将 id 列更改为 {{1 }} 并且当 yajra 加载记录时,它仍在搜索列 team_id:

数据表代码:

id

如您所见,我的数据表 protected function getColumns() { return [ Column::make('team_id'),Column::make('name')->addClass('text-left'),Column::make('logo')->addClass('text-center')->orderable(false),Column::make('captain')->addClass('text-right'),Column::make('wicketKeeper')->addClass('text-right')->title('Wicket Keeper'),Column::make('substitute')->addClass('text-right'),Column::make('city_id')->addClass('text-right')->title('City'),Column::make('created_at'),Column::computed('action') ->exportable(false) ->printable(false) ->width(150) ->addClass('text-center'),]; } 函数具有 getColumns 列,即使我更改了 team_id 模型中的主键列也

团队模型

Team

但仍然出现同样的错误:protected $primaryKey = 'team_id';

谁能告诉我哪里错了?

解决方法

例如在 Laravel 的控制器中:

public function getMultiFilterSelect()
{
    return view('datatables.eloquent.multi-filter-select');
}
public function getMultiFilterSelectData()
{
    $users = User::select(['team_id','name','email','logo','captain','wicketKeeper','substitute','city_id']);
    return Datatables::of($users)->make(true);
}

在 Javascript 代码中:

$('#users-table').DataTable({
    processing: true,serverSide: true,ajax: 'https://datatables.yajrabox.com/eloquent/multi-filter-select-data',columns: [
        {data: 'team_id',name: 'team_id'},{data: 'name',name: 'name'},{data: 'email',name: 'email'},{data: 'logo',name: 'logo'},{data: 'captain',name: 'captain'},{data: 'wicketKeeper',name: 'wicketKeeper'},{data: 'substitute',name: 'substitute'},{data: 'city_id',name: 'city_id'}
    ],initComplete: function () {
        this.api().columns().every(function () {
            var column = this;
            var input = document.createElement("input");
            $(input).appendTo($(column.footer()).empty())
            .on('change',function () {
                column.search($(this).val(),false,true).draw();
            });
        });
    }
});

如果您仍然遇到有关数据表的一些问题,您可以轻松地按照文档 https://datatables.yajrabox.com/eloquent/multi-filter-select 在此处输入代码

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...