【问题标题】:Call to a member function links() on array in Laravel 5.6在 Laravel 5.6 中调用数组上的成员函数 links()
【发布时间】:2018-12-21 06:52:06
【问题描述】:

我在 Laravel 5.6 中使用分页来构建应用程序。我正在使用 Laravel DB 而不是 Eloquent。但是,当我在视图中添加分页链接时,它会显示错误调用数组上的成员函数 links()。这是因为我使用的是数组,默认是带有集合的对象。我得到的输出看起来像

array:12 [▼
    "current_page" => 1
    "data" => array:3 [▶]
    "first_page_url" => "http://127.0.0.1:8000/posts?page=1"
    "from" => 1
    "last_page" => 3
    "last_page_url" => "http://127.0.0.1:8000/posts?page=3"
    "next_page_url" => "http://127.0.0.1:8000/posts?page=2"
    "path" => "http://127.0.0.1:8000/posts"
    "per_page" => 3
    "prev_page_url" => null
    "to" => 3
    "total" => 9
]

当我使用正常分页时,即不转换为数组时,输出为

LengthAwarePaginator {#264 ▼
    #total: 9
    #lastPage: 3
    #items: Collection {#251 ▶}
    #perPage: 3
    #currentPage: 1
    #path: "http://127.0.0.1:8000/posts"
    #query: []
    #fragment: null
    #pageName: "page"
}

我在这里面临的问题是将其他数据添加到集合中

我不能使用 pagination() 方法返回的默认输出。有人可以建议如何解决这个问题吗?

【问题讨论】:

  • 请发布您的视图代码和任何可能相关的控制器代码。
  • 我没听懂你。你能再解释一下吗?
  • 请向我们展示创建分页对象的代码(通常在控制器类中)和将分页链接添加到 HTML 代码的代码(通常在视图模板中)。
  • 内部视图我使用 $page->links() 来显示分页。使用 toArray() 将对象集合转换为数组
  • 添加什么其他数据来收集?

标签: php arrays laravel


【解决方案1】:

使用以下内容,我得到了所需的输出。

第 1 步:在文件中包含 LengthAwarePaginator

use Illuminate\Pagination\LengthAwarePaginator;

第二步:创建一个LengthAwarePaginator的对象

$paginate = new LengthAwarePaginator(Array, countOfArray, perPage, currentPage, [
        'path' =>  request()->url(),
        'query' => request()->query()
]);

我将 currentPage 值保持为空。
返回 $paginate 以查看。

return view('home', ['data' => Array, 'page' => $paginate]);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-04
    • 1970-01-01
    • 1970-01-01
    • 2019-01-22
    • 1970-01-01
    • 2022-01-22
    • 2017-05-22
    相关资源
    最近更新 更多