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

Laravel 8中MorphMany关联返回空数组问题求助

问题修复方案

你的问题出在产品模型的关联方法定义错误,导致预加载images时无法正确关联到图片数据,以下是具体修复步骤:

错误点分析

  1. 关联类型错误:产品与图片是多态一对多关联,应使用morphMany方法,而非多对多的belongsToMany。
  2. 关联模型错误:关联目标写成了Category::class,实际应该关联图片模型(比如Image::class)。
  3. 缺少返回语句:images()方法没有返回关联实例,仅执行了关联逻辑但未返回结果。

修复后的产品模型代码

protected $fillable=['name', 'description'];

public function images(){
  return $this->morphMany(Image::class, 'imagable');
}

额外验证

确保图片表(如images)的字段正确:

  • imagable_id:存储关联模型的ID(整数类型)
  • imagable_type:存储关联模型的类名(字符串类型)

修复后,控制器的index方法执行Product::with('images')->get()即可正常返回包含图片数据的产品列表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 09:15:35