【问题标题】:Laravel 3, two pagination on one page?Laravel 3,一页有两个分页?
【发布时间】:2013-07-06 18:23:59
【问题描述】:

在控制器中,我有两个查询,例如:

    $results1 = Something1::with('something2')
                          ->where_instance_id(...)
                          ->where_page_id(2)
                          ->where_in('status',array('bla','blabla'))
                          ->paginate(10);

    $results2 = Something1::with('something2')
                          ->where_instance_id(...)
                          ->where_page_id(4)
                          ->where_in('status',array('bla','blabla'))
                          ->paginate(10);

然后在一个视图(一页)中,我有两个物理页面。其中一个通过 table 将描述 $results1,一个将描述 $results2。

问题在于 laravel 3 不支持一页上的两个分页? 当我做类似的事情时:

    {{ $results1->links() }}
    {{ $results2->links() }}

它不起作用,当我单击 $results1 的分页按钮时,我也会更改 $results2 的视图,反之亦然。

注意:我不能创建两个视图。
有什么想法或替代方法可以解决这个问题吗?

谢谢。

【问题讨论】:

  • 我已经对源代码进行了一些挖掘,在我看来,有一个可以从环境中检索的变量(默认“页面”),但还没有找到方法来解决你的问题。我对答案很感兴趣:)
  • 我也尝试了 2 小时,但还没有结果。
  • 你已经尝试了什么?请更新您的问题。
  • Laravel 4 的简单解决方案:stackoverflow.com/a/25553245/1182592

标签: php laravel


【解决方案1】:

它丑陋、肮脏、没有经过全面测试,而且我缺少链接的附加信息,但是:

$Bar = new Bar;
$Bar->paginate(); // will use page=x

$Foo = new Foo;
$P = clone($Foo->getConnection()->getPaginator());
$P->setPageName('section');
$Foo->getConnection()->setPaginator($P);
$Foo->paginate(); // will use section=x

您现在可以在 1 个页面上使用 2 个列表,但是您不能导航到 page=3 然后到 section=2,因为 page=3 将消失 - 这是您需要找出一些 append() logix 的地方行得通。

[edit] and.... 这段代码是针对 L4 的,没有注意到 L3 标签。吓死我了。

【讨论】:

  • 可能有点难看,但它确实救了我的命。我只是遇到了这个确切的问题,因为我在每个选项卡中都有一个带有分页结果列表的选项卡。自然它算作一页,所以它在 Laravel 中不起作用。到目前为止,它似乎工作正常(只要我确保根据上次分页的列表设置选项卡)。
猜你喜欢
  • 2020-05-27
  • 2019-08-29
  • 2015-05-17
  • 2015-11-16
  • 1970-01-01
  • 2020-04-25
  • 1970-01-01
  • 1970-01-01
  • 2019-10-16
相关资源
最近更新 更多