为了账号安全,请及时绑定邮箱和手机立即绑定

使用 DataTables 在 Laravel 中按雄辩的关系排序

使用 DataTables 在 Laravel 中按雄辩的关系排序

PHP
繁星淼淼 2022-11-04 17:34:35
我正在尝试使用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);


查看完整回答
反对 回复 2022-11-04
  • 1 回答
  • 0 关注
  • 167 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号