调用一个成员函数getQuery()在数组上 [英] Call to a member function getQuery() on array

查看:142
本文介绍了调用一个成员函数getQuery()在数组上的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



错误: 调用一个成员函数getQuery()在数组上 strong> in laravel datatables



以下是Laravel Code:
控制器:

  public function get_all_course_requests(){
$ course_request = new CourseRequest();
$ request_details = $ course_request-> get_all_course_requests();
$ i = 0;
foreach($ request_details as $ request){
$ request_details [$ i] - > sr_no = $ request-> id;
$ request_details [$ i] - > l_fname = $ request-> l_fname;
$ request_details [$ i] - > l_lname = $ request-> l_lname;
$ request_details [$ i] - > l_mail = $ request-> l_mail;
$ request_details [$ i] - > name = $ request-> name;
$ request_details [$ i] - > request_date = $ request-> request_date;
$ request_details [$ i] - > action = $ request-> id;
$ i ++;
}
return Datatables :: of($ request_details)
- > filterColumn('l_fname','l_lname','name','course_name','request_date')
- > make(true);
}

型号:

  function get_all_course_requests($ status ='0'){
// DB :: enableQueryLog();
$ course_request = new CourseRequestModel;
$ my_team_ids = $ course_request-> get_my_team_learner_ids();
return DB :: table('course_request')
- > select('login_details.l_fname','login_details.l_lname','login_details.l_mail','course_request.id','multilevel_course。 name','course_request.request_date')
- > whereIn('login_details.l_id',$ my_team_ids)
- > where('course_request.status',$ status)
- > join('login_details','login_details.l_id','=','course_request.user_id')
- > join('multilevel_course','multilevel_course.id','=','course_request。 course_id')
- > whereIn('enrollment_policy',array('2','3'))
- > get();

}

这是JS代码:

  $(function(){
$('#course_requests_table')。DataTable({
processing:true,
serverSide:true,
ajax:BASE_URL +'/ get_course_requests',
order:[],
列:[
{data:view,orderedable:false,
render:function(data,type,row){
return'< input type =checkboxclass =casename =row_ids []value ='+ data +'> ';
}
},
{data:'l_fname',name:'l_fname'},
{data:'l_lname',name:'l_lname'},
{data:'l_mail',name:'l_mail'},
{data:'name',name:'name'},
{data:'request_date',name:'request_date '},
{data:'action',orderable:false,
render:fun ction(data,type,row){
return'< a style =cursor:pointerOnClick =delete_mail('+ data +')>< i class =fa fa-trash >< / i>< / a>';
}
}
]
});
});

代码出了什么问题?要解决这个问题需要做些什么?

解决方案

解决: >

解决方案:将数组转换为Collection,使用 collect()

  $ request_details = $ course_request-> get_all_course_requests(); 
$ request_details = collect($ request_details);
$ i = 0;
foreach ......


Trying to do with datatables in laravel:

Error: Call to a member function getQuery() on array in laravel datatables

Here is Laravel Code: Controller:

public function get_all_course_requests() {
        $course_request = new CourseRequest();
        $request_details = $course_request->get_all_course_requests();
        $i = 0;
        foreach ($request_details as $request) {
            $request_details[$i]->sr_no = $request->id;
            $request_details[$i]->l_fname = $request->l_fname;
            $request_details[$i]->l_lname = $request->l_lname;
            $request_details[$i]->l_mail = $request->l_mail;
            $request_details[$i]->name = $request->name;
            $request_details[$i]->request_date = $request->request_date;
            $request_details[$i]->action = $request->id;
            $i++;
        }
        return Datatables::of($request_details)
                        ->filterColumn('l_fname', 'l_lname', 'name','course_name','request_date')
                        ->make(true);
    }

Model:

function get_all_course_requests($status='0') {
      //  DB::enableQueryLog();
        $course_request = new CourseRequestModel;
        $my_team_ids = $course_request->get_my_team_learner_ids();
       return  DB::table('course_request')               
                ->select('login_details.l_fname','login_details.l_lname','login_details.l_mail','course_request.id','multilevel_course.name','course_request.request_date')
                ->whereIn('login_details.l_id', $my_team_ids)
                ->where('course_request.status', $status)
                ->join('login_details', 'login_details.l_id','=', 'course_request.user_id')
                ->join('multilevel_course', 'multilevel_course.id','=','course_request.course_id')
                ->whereIn('enrollment_policy',array('2','3') )
                ->get();

    }

Here is JS Code:

$(function() {
    $('#course_requests_table').DataTable({
        processing: true,
        serverSide: true,
        ajax: BASE_URL + '/get_course_requests',
        order: [],
        columns: [
            {data: "view", orderable: false,
                render: function(data, type, row) {
                    return '<input type="checkbox" class="case" name="row_ids[]" value="' + data + '">';
                }
            },
            {data: 'l_fname', name: 'l_fname'},
            {data: 'l_lname', name: 'l_lname'},
            {data: 'l_mail', name: 'l_mail'},
            {data: 'name', name: 'name'},
            {data: 'request_date', name: 'request_date'},
            {data: 'action', orderable: false,
                render: function(data, type, row) {
                    return '<a style="cursor:pointer" OnClick="delete_mail(' + data + ')"><i class="fa fa-trash"></i></a>';
                }
            }
        ]
    });
});

Whats going wrong with code? and what to be done to solve this?

解决方案

Solved:

Solution: converted array to Collection using collect()

 $request_details = $course_request->get_all_course_requests();
           $request_details= collect($request_details);
 $i = 0;
        foreach...... 

这篇关于调用一个成员函数getQuery()在数组上的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆