Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

orderBy on whereHas query in Laravel 4.2

how can I sort the return data from a query using whereHas? In my query i have to get the users data which id exist on interest table but i need to sort it using the datetime column from interest. But, the return query do not sort the data at all.

Here's my code snippets in case it would help you understand my problem.

Model (name: User)

//***relationship***//
public function interest(){
     return $this->belongsTo('Interest','id','interest_by');
}

Controller

$userInterested = User::whereHas('interest',function($q) use ($id) {
     return $q->where('interest_on', $id)
              ->orderBy('datetime');
});
$userQuery = $userInterested->get();
return $userQuery;
like image 717
slverstone Avatar asked May 18 '15 02:05

slverstone


1 Answers

remove return from where has and try this.like

$userInterested = User::whereHas('interest',function($q) use ($id) {
  $q->where('interest_on', $id)
          ->orderBy('datetime');
 })->get();
 return $userInterested;
like image 88
Imtiaz Pabel Avatar answered Oct 31 '22 14:10

Imtiaz Pabel