2015-05-18 15 views
5

come è possibile ordinare i dati di ritorno da una query utilizzando whereHas? Nella mia query devo ottenere i dati degli utenti che esistono sulla tabella interesse ma devo ordinarla usando la colonna datetime da interesse. Ma la query di ritorno non ordina affatto i dati.orderBy su whereHas query in Laravel 4.2

Ecco i frammenti di codice nel caso in cui possa aiutarti a capire il mio problema.

Modello (nome: 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; 
+0

Oh, riesco a ottenere la soluzione per il mio problema, usando join() su query builder sufficiente m ho bisogno Ma se hai altre soluzioni, non esitare a postare. – slverstone

risposta

0

rimuovere ritorno da dove ha e cercare this.like

$userInterested = User::whereHas('interest',function($q) use ($id) { 
    $q->where('interest_on', $id) 
      ->orderBy('datetime'); 
})->get(); 
return $userInterested; 
0
$userInterested = User::whereHas('interest',function($q) use ($id) { 
    return $q->where('interest_on', $id); 
})->orderBy('datetime'); 
$userQuery = $userInterested->get(); 
return $userQuery; 
+0

provato e non funziona, prova a cercare _datetime_ sulla tabella ** users ** invece su ** interest ** – slverstone