Laravel Livewire blade文件无法显示分页链接问题求解
问题解决方案
报错原因
Call to a member function links() on array 报错的核心逻辑:
- Laravel 的
links()方法是**分页器对象(Illuminate\Pagination\LengthAwarePaginator)**的专属方法,你在Data()方法中对paginate()返回的分页器结果调用了toArray(),将对象转换成了纯数组,数组没有对应类方法自然会报错。 - 另外你提供的代码片段存在变量名不一致的问题:初始查询构造器变量为
$fgd,后续条件拼接时误用了$fax、$fassssxSss、$favfhdjdfh等未定义变量,需要先统一变量名保证查询逻辑正常。
修复步骤
- 调整
Data()方法的返回逻辑,不要直接对分页结果调用toArray(),保留分页器对象传递到Blade视图:
// 修正变量名统一为$fgd后的示例逻辑 public function Data() { $fgd = FaddddxO::where('seus',$this->stas) ->whereNull('achieve_by'); if ($this->filter == '' && $this->stus != 'x Error') { $fgd->where(function ($query) { $query->whereDate('created_at', Carbon::today()) ->orWhereDate('d_datetime', Carbon::today()); }); } else if ($this->filter == 'ries'){ $fgd->where('resd_ag','>=',3)->whereNull('archive_by'); } else if ($this->filter == 'ponse'){ $fgd->where(function ($query) { $query->whereDate('created_at','<=' ,Carbon::now()->subDays(3)) ->orWhereDate('dvkjdvvbfshnd_datetime','<=' ,Carbon::now()->subDays(3)); })->whereNull('archive_by'); } // 直接返回分页器对象,不要调用toArray() return $fgd->paginate(10); // 10为每页条数,可自行调整 }
- 如果业务需要同时使用数组格式的分页数据,可以分别存储分页器对象和数组数据,同时传递到视图:
$paginator = $fgd->paginate(10); $pageData = $paginator->toArray(); // 数组格式的分页数据,用于其他业务逻辑 // 视图渲染时将$paginator和$pageData都传过去即可
- Blade视图中直接使用分页器对象调用
links()渲染分页链接:
{{-- 渲染分页数据 --}} @foreach($paginator as $item) {{-- 业务内容渲染 --}} @endforeach {{-- 渲染分页链接 --}} {{ $paginator->links() }}
内容的提问来源于stack exchange,提问作者rjrocks
相关产品推荐
相关产品推荐

