【发布时间】:2021-03-09 06:34:57
【问题描述】:
我在laravel yajra datatables 工作,一切正常,但如果我使用我的默认主键列作为id 但出于安全目的,我只是将id 列更改为team_id 并且当 yajra 加载记录时它仍在搜索列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';
但仍然出现同样的错误:Unknown column teams.id in where clause
谁能告诉我哪里错了?
【问题讨论】:
-
您是否更改了 $fillable?或这个?受保护的 $primaryKey = 'team_id';另外,你能试试这个吗?
Column::make('team_id', function($query) { return $query->('team_id'); }), -
是的,我也更改了可填写内容,
return $query->('team_id')给了我错误