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

Laravel中如何通过Price模型的size_id外键获取关联Size模型的name值

解决方案
  • 第一步:在Price模型中定义与Size模型的从属关联
    在app/Models/Price.php文件中添加如下关联方法,方法名需和模板中调用的size属性保持一致:
public function size()
{
    // 外键名、关联主键名不符合Laravel默认规则时,可手动传入第二、第三参数指定
    return $this->belongsTo(Size::class);
}
  • 第二步:优化查询逻辑,开启关联预加载
    控制器查询Product数据时,使用with方法预加载prices下嵌套的size关联,避免出现N+1查询问题:
$products = Product::with('prices.size')->get();
  • 第三步:修正Blade模板的遍历逻辑
    原模板存在两个问题:若$products是多产品的集合,不能直接调用prices属性,需先遍历产品再遍历对应价格条目;遍历价格条目时的变量名误用易引发逻辑混淆,修正后写法如下:
@foreach($products as $productItem)
    @foreach($productItem->prices as $price)
        <p>{{ $price->min }}</p>
        <p>{{ $price->max }}</p>
        <p>{{ $price->size->name }}</p>
    @endforeach
@endforeach

若你查询的是单个产品实例,可去掉外层的产品遍历,直接遍历单个产品的prices属性即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 10:06:01