【问题标题】:Laravel Pagination with appends() Error带有 appends() 错误的 Laravel 分页
【发布时间】:2014-06-11 02:13:37
【问题描述】:

我是 Laravel 新手,正在使用 4.1 版。

我正在尝试使用分页查询数据库,然后通过 appends() 函数运行结果以向我的 URL 添加其他参数。

这是我正在使用的代码

$query = DB::table('tableName');
$query->paginate(50);
$results = $query->get();

然后按需要运行。现在,当我尝试创建分页列表(Bootstrap 默认)并运行以下代码时出现错误。

$pagination = $results->appends(array('key' => 'value'))->links();

这是我收到的错误。

在非对象上调用成员函数 appends()

我知道我做错了什么,我就是想不通……

提前致谢, SC

【问题讨论】:

    标签: laravel pagination


    【解决方案1】:

    我不熟悉 appends 函数,但我可以看到你确实有一个错误。尝试改变

    $query = DB::table('tableName');
    $query->paginate(50);
    $results = $query->get();
    

    到...

    $query = DB::table('tableName');
    
    if(Input::has('someinput')) {
        $query->where('someinput', Input::get('someinput'));
    }
    
    if(Input::has('otherinput')) {
        $query->where('otherinput', Input::get('otherinput'));
    }
    
    $results = $query->paginate(50);
    

    一旦您运行paginate(),就会返回一个Paginator 的实例。我没有看到Paginatorget() 方法,所以我不确定你是如何在那里没有收到错误的。

    【讨论】:

    • 感谢您的回复。我最初按照您所说的方式构建了查询,但是我需要根据是否设置了值来添加动态 where 子句。因此,我将查询更改为上述格式。这允许我使用 if(isset($value)) { $query->where(); } 根据您所概述的方式,我可以弄清楚如何做到这一点。
    • 在完成查询后调用 paginate。举个例子,我会稍微修改一下我的答案。
    猜你喜欢
    • 1970-01-01
    • 2019-03-29
    • 2015-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-24
    • 1970-01-01
    相关资源
    最近更新 更多