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

Laravel报错:调用App\Models\Product模型上未定义的[product]关联

Laravel报错:调用App\Models\Product模型上未定义的[product]关联

嘿,我看了你的代码,问题一眼就能看出来——你在控制器里调用了一个根本不存在的关联关系!

先看你的show_product方法:

public function show_product(){
    $product=Product::with(['product.product_plan','product.product_two'])->get();
    return view('admin.show_product',compact('product'));
}

这里你用了product.product_plan和product.product_two,但你的Product模型里并没有定义名为product的关联,你定义的是直接挂在Product模型上的product_two和product_plan关联啊!

正确的写法应该是这样:

直接加载Product模型本身的关联,不需要加product.前缀:

public function show_product(){
    $product=Product::with(['product_plan','product_two'])->get();
    return view('admin.show_product',compact('product'));
}

另外,我还发现一个潜在问题:

你的Product模型里的product_plan关联定义可能有问题:

public function product_plan(){
    return $this->hasOne(Product_plan::class, 'other_details','id');
}

这里你把外键指定为other_details,但通常这种关联的外键应该是product_id(关联到Product的id字段),如果你的product_plans表的外键确实是other_details那没问题,但如果是笔误的话,后续肯定会出现关联数据加载不出来的问题,建议赶紧检查一下数据库表结构。

总结一下:

  • 你错误地在with方法里嵌套了不存在的product关联,直接写模型中已定义的关联名称即可
  • 检查product_plan关联的外键是否符合你的数据库表结构,避免后续出现数据加载异常

备注:内容来源于stack exchange,提问作者Eamun Islam Nabid

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 09:00:33