我有一个问题:
$eventsList = DB::table('events')
->where('start', '>', Carbon::now())
->orWhere(function($query)
{
$query->where('start', '<', Carbon::now())
->where('end', '=', '0000-00-00 00:00:00');
})
->orderBy($order_by, $order)
->get();
工作正常并返回大约50个结果。但我想限制并归档返回的条目,因此我添加了->skip()
和->take()
链:
$eventsList = DB::table('events')
->where('start', '>', Carbon::now())
->orWhere(function($query)
{
$query->where('start', '<', Carbon::now())
->where('end', '=', '0000-00-00 00:00:00');
})
->orderBy($order_by, $order)
->skip(0)->take(10)
->get();
但现在它什么也没有回报。我在这里做错了什么?
编辑:添加了getQueryLog()的结果:
array(1) {
[0]=>
array(3) {
["query"]=>
string(112) "select * from `events` where `start` > ? or (`start` < ? and `end` = ?) order by `start` asc limit 10 offset 0"
["bindings"]=>
array(3) {
[0]=>
object(Carbon\Carbon)#225 (3) {
["date"]=>
string(19) "2014-06-27 13:31:12"
["timezone_type"]=>
int(3)
["timezone"]=>
string(13) "Europe/London"
}
[1]=>
object(Carbon\Carbon)#228 (3) {
["date"]=>
string(19) "2014-06-27 13:31:12"
["timezone_type"]=>
int(3)
["timezone"]=>
string(13) "Europe/London"
}
[2]=>
string(19) "0000-00-00 00:00:00"
}
["time"]=>
float(0.76)
}
}
答案 0 :(得分:0)
我将假设以下内容:
当你说PAGE结果时 - 你实际上是指一次给我10个。
如果是这种情况,请使用->take($limit)->offset($offset)
代替10,然后你的偏移是你的块
其中offset = $ page * 10
现在作为一个额外的事情:laravel杠杆为你分页功能paginate(10)