【问题标题】:Laravel: paginating a fluent queryLaravel:对流畅的查询进行分页
【发布时间】:2013-08-01 02:54:38
【问题描述】:

我正在尝试在我的视图中对页面进行分页,如下所示:

@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 个结果。

关于如何完成这项工作的任何想法?

我已经按照http://forums.laravel.io/viewtopic.php?id=4092 中的建议尝试了@foreach($tasks->result as $task),但它给了我一个错误“未定义的属性:Illuminate\Pagination\Paginator::$result”

【问题讨论】:

  • @FDL 刀片等价物是 {{ $tasks->links() }} 这是我在上面添加的
  • 啊,是的,没看到,抱歉。
  • 任务是不是超过20个???
  • 嗨 @HarryMartland 我的数据库中有 26 个结果 - 如果我将分页数更改为 2 之类的值,它仍然具有相同的结果。
  • 您是否在配置中设置了自定义视图? app/config/view.php -> pagination - 或者可能删除了默认视图?

标签: php laravel laravel-4 fluent blade


【解决方案1】:

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

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

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

而且你很清楚!

另一点 - 如果你像我一样使用 Bootstrap 3 RC1,你会发现分页会因为 BS3 样式分页的方式而中断 - 如果你有这个问题,请到这里寻求解决方案:https://github.com/laravel/laravel/issues/2215

:)

【讨论】:

    猜你喜欢
    • 2016-05-11
    • 2014-09-27
    • 2019-11-14
    • 2018-06-09
    • 2012-08-19
    • 2012-04-12
    • 2021-12-04
    • 2014-10-16
    • 1970-01-01
    相关资源
    最近更新 更多