在 Laravel 5.6 中调用数组上的成员函数 links()
Posted
技术标签:
【中文标题】在 Laravel 5.6 中调用数组上的成员函数 links()【英文标题】:Call to a member function links() on array in Laravel 5.6 【发布时间】: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() 将对象集合转换为数组 添加什么其他数据来收集? 【参考方案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]);
【讨论】:
以上是关于在 Laravel 5.6 中调用数组上的成员函数 links()的主要内容,如果未能解决你的问题,请参考以下文章
从 Laravel 5.2 更新到 5.3 后,调用数组上的成员函数 all()
在 laravel 资源中调用 null 上的成员函数 first()
使用 laravel 请求类时,在数组错误上调用成员函数失败()
调用字符串上的成员函数 addEagerConstraints() - Laravel 8
在运行 laravel phpunit testcase 时,我在 Model.php 第 1249 行收到错误“调用 null 上的成员函数 connection()”