我正在尝试使用DataTables来显示应用程序模型的列表。应用模型有操作:public function operations(){ return $this->hasMany('\App\Operation', 'application_id', 'id');}运营模型有状态:public function state(){ return $this->belongsTo('App\State', 'status_id', 'id');}和操作作者(用户):public function user(){ return $this->hasOne('App\User', 'id', 'user_id');}要启用数据表,我正在使用此代码: $(function() { $('#applications-table').DataTable({ language: { "url": "/js/Polish.json" }, processing: true, serverSide: true, ajax: '{!! route('applications.data') !!}', ] }); });ApplicationController 正在使用此代码提供数据 $model = Application::with(array( 'operations' => function ($query) { $query->orderByDesc('operations.created_at')->with('state')->with('user'); } )); return Datatables::of($model)->make(true);最后一个问题 - 表格正在正确呈现,但是当我尝试按第一列之外的另一列排序时,我收到警告:DataTables 警告:表 id=applications-table - 请求第 0 行的未知参数“operations.0.correspondence”。老实说,我不知道如何使它工作。先感谢您。
1 回答
小唯快跑啊
TA贡献1863条经验 获得超2个赞
通过使用DB::table修复
$applications = DB::table('applications as a')
->join('operations as o', function($join){
$join->on('o.application_id', '=', 'a.id')
->on('o.id', '=', DB::raw("(SELECT max(id) from operations WHERE operations.application_id = a.id)"));
})
->join('users as u', 'o.user_id', '=', 'u.id')
->join('states as s', 'o.status_id', '=', 's.id')
->select(['a.id as a_id','a.number','o.*', 'u.name as u_name', 'u.surname as u_surname', 's.name as s_name']);
return Datatables::of($applications)->make(true);
- 1 回答
- 0 关注
- 167 浏览
添加回答
举报
0/150
提交
取消
