Php laravel将sql转换为雄辩的查询
我有一个带有连接的sql查询Php laravel将sql转换为雄辩的查询,php,mysql,laravel-5,Php,Mysql,Laravel 5,我有一个带有连接的sql查询 select t.id,t.trip_id,c.containerid,s.shipment_name,s.source_location_name,s.destination_location_name,ss.status_name,st.status_name as status_type from (select T.* from(SELECT * FROM tbl_trip_status ORDER BY id DESC) T group by T.tri
select t.id,t.trip_id,c.containerid,s.shipment_name,s.source_location_name,s.destination_location_name,ss.status_name,st.status_name as status_type from
(select T.* from(SELECT * FROM tbl_trip_status ORDER BY id DESC) T group by T.trip_id) ts
JOIN tbl_trips t ON t.id=ts.trip_id
JOIN tbl_container c ON c.id=t.container_id
JOIN tbl_shipment s ON s.id=t.shipment_id
JOIN tbl_statuses ss ON ss.id=ts.status_id
JOIN tbl_status_types st ON st.id=ss.status_type
where t.status=1 and t.user_id in (1,2,3,4,5,6,14)
ORDER BY `t`.`trip_id` ASC
当我试图用这个原始查询调用paginate()时,我需要在雄辩的模式下使用这个查询,它显示
对数组上的成员函数paginate()的调用
我认为问题是,在从查询中获取数据之后,您已经将Std类对象转换为数组,这就是为什么会出现错误 试试这个:
$data = DB::select(DB::raw('your query'));
这里的$data
是一个Std类对象
,您可以在其上调用分页函数
谢谢大家
我在雄辩的询问中找到了一个解决方案,即
DB::table('tbl_trips as t')->select('t.id','t.trip_id','c.containerid','s.shipment_name','s.source_location_name','s.destination_location_name','ss.status_name','st.status_name as status_type')
->join(DB::raw('(select T.* from(SELECT * FROM tbl_trip_status ORDER BY id DESC) T group by T.trip_id) ts'),'ts.trip_id', '=', 't.id')
->join('tbl_container as c', 'c.id', '=', 't.container_id')
->join('tbl_shipment as s', 's.id', '=', 't.shipment_id')
->join('tbl_statuses as ss', 'ss.id', '=', 'ts.status_id')
->join('tbl_status_types as st', 'st.id', '=', 'ss.status_type')
->where('t.status','=',"1")
->where('t.id', '=', 'ts.trip_id')
->whereIn('t.user_id',$subusrs)
->paginate(10);
仅此而已。这里还对(10)函数进行分页,显示对成员函数错误的相同调用。您应该考虑接受您的答案,因为您找到了解决方案。