You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Laravel simplePaginate()报错:Paginator::$image未定义

问题:使用simplePaginate()时出现Undefined property错误

控制器代码

foreach($lesson->products as $product)
{
    $p[] = $product->simplePaginate(1);
}

视图代码

@foreach($p as $data)
    <img src="{{ asset('storage/'.$data->image) }}" alt="">
@endforeach

{{ $p->links('layouts.paginate') }}

错误信息

Undefined property: Illuminate\Pagination\Paginator::$image

问题原因

  1. 控制器逻辑错误:你循环每个$product调用simplePaginate(1),导致$p变成了分页器实例的数组,而不是包含产品数据的分页集合。
  2. 视图遍历错误:$p中的每个元素是Illuminate\Pagination\Paginator对象,这个对象本身没有image属性,直接访问$data->image必然报错。
  3. 额外问题:$p是数组,调用$p->links()也会报错,因为数组不存在links()方法。

修正方案

控制器代码修改

直接对lesson关联的products查询构造器做分页,无需循环:

$p = $lesson->products()->simplePaginate(1);

注意:必须用products()(带括号),它返回查询构造器,支持分页方法;如果用products(不带括号)是已加载的集合,无法直接执行分页操作。

视图代码修改

遍历分页器中的产品数据,再调用分页器的links()方法:

@foreach($p as $data)
    <img src="{{ asset('storage/'.$data->image) }}" alt="">
@endforeach

{{ $p->links('layouts.paginate') }}

内容的提问来源于stack exchange,提问作者mary

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 07:10:15