调用一个成员函数getQuery()在数组上 [英] Call to a member function getQuery() on array
本文介绍了调用一个成员函数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屋!
查看全文