2014-05-21 101 views
0

我想通过在Laravel Eloquent高级查询中使用orderby对数据进行排序。这里是我的代码:orderby在Laravel中不起作用Eloquent高级查询

$users = User::where(function($query){ 

     $query->orderBy('created_at', 'DESC'); 

    })->get()->toArray(); 
    var_dump($users); 

但它不起作用。相反,如果我使用这样orderby:

$users = User::orderBy('created_at', 'DESC')->get()->toArray(); 
    var_dump($users); 

它的工作。

任何人都可以建议如何使高级查询工作顺序?谢谢

+0

当你在这样的“函数”中有'where'查询时,它实际上是一个* sub *查询,所以排序结果不会影响父查询。那么,其实这只是一个猜测,但它听起来很正确:P –

回答

1

我试过各种不同的组合,发现orderBy必须在查询函数之外(或者应该是最后一个?)。下面是正在工作的代码:

$users = User::where(function($query){ 

    // ...... 

})->orderBy('created_at', 'DESC')->get()->toArray(); 
var_dump($users); 
+0

我一直有相同的经验 – jmadsen