posso usar orderByRaw AND orderBy juntos? parece não funcionar para mim, a consulta resultante parece respeitar apenas orderByRaw
Return-1
tente colocar orderBy primeiro e depois orderByRaw e veja o resultado @GeorgeAvgoustis
Sagar Naliyapara 25/17
infelizmente, isso não pode ser feito, pois primeiro precisa ser randomizado e depois ordenado pelo qualificador final.
Return-1
1
Ele faz juntos o trabalho pode ser porque a aplicação na primeira coluna de classificação você não pode ver a segunda coluna de classificação
Sagar Naliyapara
3
Aqui está outro truque que eu criei para minha classe de repositório base, na qual eu precisava ordenar por um número arbitrário de colunas:
publicfunction findAll(array $where =[], array $with =[], array $orderBy =[],int $limit =10){
$result = $this->model->with($with);
$dataSet = $result->where($where)// Conditionally use $orderBy if not empty->when(!empty($orderBy),function($query)use($orderBy){// Break $orderBy into pairs
$pairs = array_chunk($orderBy,2);// Iterate over the pairsforeach($pairs as $pair){// Use the 'splat' to turn the pair into two arguments
$query->orderBy(...$pair);}})->paginate($limit)->appends(Input::except('page'));return $dataSet;}
User::orderBy('name', 'DESC') ->orderBy('email', 'ASC') ->get();
Respostas:
Simplesmente invoque
orderBy()
quantas vezes você precisar. Por exemplo:Produz a seguinte consulta:
fonte
User::orderBy(array('name'=>'desc', 'email'=>'asc'))
$user->orders = array(array('column' => 'name', 'direction' => 'desc'), array('column' => 'email', 'direction' => 'asc'));
get
oufirst
), basta ligarorderBy
para ele. Senão, não.Você pode fazer o que o @rmobis especificou em sua resposta, [Adicionando algo mais a ele]
Usando
order by
duas vezes:e a segunda maneira de fazer isso é,
Usando
raw order by
:Ambos produzirão a mesma consulta a seguir,
Como @rmobis especificado no comentário da primeira resposta, você pode passar como uma matriz para ordenar por coluna como esta,
mais uma maneira de fazer isso é
iterate
em loop,Espero que ajude :)
fonte
Aqui está outro truque que eu criei para minha classe de repositório base, na qual eu precisava ordenar por um número arbitrário de colunas:
Agora, você pode fazer sua ligação assim:
fonte