Mar*_*ark 9 php mysql sorting laravel laravel-4
id,msg并created_at在我的模型表.created_at是一个时间戳,id是主键.world => time4,,hello => time2 和基于它们的这些的数据都是按升序排列(如下安排).haha => time1hihio => time5dunno => time3id在laravel 4中,我想获取这些数据,按升序排列它们并获取最后n个(在本例中为3个)记录数.所以,我想得到dunno,world并hihio在div中显示如下行:
dunno,time3
world,time4
hihio,time5
Run Code Online (Sandbox Code Playgroud)
我试过了什么
Model::orderBy('created_at','asc')->take(3);
Run Code Online (Sandbox Code Playgroud)
不良后果:
haha,time1
hello,time2
dunno,time3
Run Code Online (Sandbox Code Playgroud)
也试过了
Model::orderBy('created_at','desc')->take(3);
Run Code Online (Sandbox Code Playgroud)
不良后果:
hihio,time5
world,time4
dunno,time3
Run Code Online (Sandbox Code Playgroud)
我也试过反面而没有运气
Model::take(3)->orderBy('created_at','asc');
Run Code Online (Sandbox Code Playgroud)
这个问题似乎相当简单,但我似乎无法使我的逻辑正确.我在Laravel 4中还是比较新的所以我会给予更好的解决方案奖励积分而不是使用orderBy(),take()如果有的话.非常感谢你!
你很近.
听起来你想先按降序排序数组
Model::orderBy('created_at','desc')->take(3);
Run Code Online (Sandbox Code Playgroud)
但然后反转阵列.您可以使用以下两种方法之一,即传统的PHP(使用array_reverse).
$_dates = Model::orderBy('created_at','desc')->take(3);
$dates = array_reverse($_dates);
Run Code Online (Sandbox Code Playgroud)
或者laravel方式,使用reverseLaravel Collection类中的函数.
$_dates = Model::orderBy('created_at','desc')->take(3)->reverse();
Run Code Online (Sandbox Code Playgroud)
查看Laravel的CollectionAPI文档,网址为http://laravel.com/api/class-Illuminate.Support.Collection.html
现在$ date将包含您想要的输出.
dunno,time3
world,time4
hihio,time5
Run Code Online (Sandbox Code Playgroud)