2016-09-28 114 views
1

我有以下雄辯查詢:Laravel極限關係數據

$move['topUsers'] = UserMoves::where('move_id',$move->id) 
       ->with(array('userBase'=>function($query){ 
        $query->select('id','name')->orderBy('power','desc')->take(3); 
        }))->get(); 

的查詢工作正常,但->take(3)沒有。當我只查找前3個時,我得到所有關係結果,按power列排序。

->orderBy('power','desc')->take(3)$query中不工作。

如何才能將實際數據限制在由power列排序的3個結果中?

回答

0

嘗試方法從this article這正是有關限制而急切裝載關係:

// New relationship 
public function mostPowerful() 
{ 
    return $this->hasOne('userBase')->orderBy('power', 'desc'); 
} 

// Get data 
$move['topUsers'] = UserMoves::where('move_id',$move->id) 
          ->with('mostPowerful') 
          ->take(3) 
          ->get(); 
0

試試這個。

$move['topUsers'] = DB::table('your_table_name') 
       ->where('move_id', $move->id) 
       ->select('id','name','power') 
       ->orderBy('power', 'desc') 
       ->take(3) 
       ->get(); 

希望這項工作。

0

沒有數組:

$topusers = UserMoves::where('move_id',$move->id) 
        ->with(['userBase'=>function($query){ 
          $query->select('id','name')->orderBy('power','desc')->take(3); 
         }])->get();