Php 两个子句上的Laravel orderBy,一个使用leftJoin
我有两个表-canvas和canvas\u details-一个canvas可以有多个canvas\u detailsPhp 两个子句上的Laravel orderBy,一个使用leftJoin,php,sorting,laravel-5,Php,Sorting,Laravel 5,我有两个表-canvas和canvas\u details-一个canvas可以有多个canvas\u details TABLE 'canvas'( 'id' 'name' 'canvas_type' 'created_at' 'updated_at') TABLE 'canvas_details' ( 'id' 'canvas_id' 'block_number' 'block_title' 'color'
TABLE 'canvas'(
'id'
'name'
'canvas_type'
'created_at'
'updated_at')
TABLE 'canvas_details' (
'id'
'canvas_id'
'block_number'
'block_title'
'color'
'size'
'notes'
'image'
'order'
'created_at'
'updated_at')
在我的控制器中,我有一个功能:
public static function canvasList($id){
$canvas_list = \DB::table('canvas')
->select(\DB::raw('distinct(canvas.id),canvas.name'))
->join('canvas_user','canvas.id','=','canvas_user.canvas_id')
->leftJoin('canvasdetails','canvas.id','=','canvasdetails.canvas_id')
->where('canvas_user.user_id',$id)
->orderBy('canvas.updated_at','desc')
->get();
return $canvas_list}
我使用它来显示画布上次更新时按用户排序的画布名称列表
创建画布时,它最初没有任何画布详细信息。创建或更新关联的canvas_详细信息不会更新canvas updated_at字段,但会更新canvas_details updated_at字段
我需要做的是对画布的详细信息上次更新的时间进行排序
我想在上次更新的画布或上次更新的画布详细信息上显示按desc排序的画布名称列表
考虑到canvas可能有或可能没有canvas_详细信息-是否有方法根据canvas_详细信息记录的存在添加该排序
该项目位于Laravel 5.2中