Laravel:对流畅查询进行分页

3

我正在尝试像这样对我的视图进行分页:

@foreach($tasks as $task)
    {{ $task->user_id }}
    {{ $task->client_id }}
    {{ $task->description }}
    {{ $task->duration }}
    {{ link_to_route('clients.show', 'View client', array($task->client_id), array('class' => 'btn btn-primary')) }}
@endforeach
    {{ $tasks->links() }}

在我的控制器中使用以下查询:

$tasks = DB::table('tasks')
    ->join('users', 'tasks.user_id', '=', 'users.id')
    ->join('clients', 'tasks.client_id', '=', 'clients.id')
    ->select(array('tasks.description', 'tasks.duration', 'tasks.client_id', 'tasks.user_id', 'users.email', 'clients.name'))
    ->where('tasks.group_id', '=', $usergroup)
    ->orderBy('tasks.created_at', 'DESC')
    ->paginate(20);

    return View::make('tasks.index', compact('tasks'));
它能够正常显示任务,但是没有分页链接,我无法跳转到下一批20个结果。
你有什么想法可以让它正常工作吗?
我在视图中尝试了"@foreach($tasks->result as $task)",如http://forums.laravel.io/viewtopic.php?id=4092所建议的,但它给我一个错误提示:"Undefined property: Illuminate\Pagination\Paginator::$result"

@FDL 刀片的等效物是 {{ $tasks->links() }},是的,我已经添加在上面了。 - Josh
啊,是的,我没看到,抱歉。 - naththedeveloper
有超过20个任务吗? - Harry Martland
1
嗨@HarryMartland,我的数据库中有26个结果 - 如果我将分页数更改为2之类的数字,它仍然具有相同的结果。 - Josh
@FDL,这与开箱即用的相同:**'pagination' => 'pagination::slider'** ... =) - Josh
显示剩余4条评论
1个回答

4

对于那些想在家里玩的人 - 我找到了答案:

compact函数将对象转换为数组。将你的返回视图方法更改为:

return View::make('tasks.index')->with('tasks', $tasks);

你已经摆脱了困境!

另外一个要点——如果你像我一样使用的是Bootstrap 3 RC1,你会发现分页因为BS3样式的原因而失效。如果你遇到这个问题,请前往此处查找解决方案:https://github.com/laravel/laravel/issues/2215

:)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接