Laravel 5.6 预加载特定列不返回任何内容

2024-01-08

我有两节课Product and ProductFormat。关系定义正确,我的产品hasMany产品格式。

public function formats()
{
    return $this->hasMany(ProductFormat::class);
}

当我尝试急切加载与特定列的关系时,如文档中所示(https://laravel.com/docs/5.6/eloquent-relationships#eager-loading https://laravel.com/docs/5.6/eloquent-relationships#eager-loading),它没有按预期工作。

例如,当我执行以下操作时:

Product::with('formats:id,upc')->get();

我得到的产品到处都是空格式。

{
    id: 1,
    formats: [ ]
}

但是,如果我执行以下操作:

Product::with('formats')->get();

我得到了预期的格式,但它有太多不需要的列。

{
    id: 1,
    formats: [
        {
            id: 1,
            upc: "101862422191",
            weight: 8.46,
            weight_unit: "kg"
        }
   ]
}

您始终需要选择关系中涉及的外键/主键。在急切加载中也获取product_id,它将起作用

Product::with('formats:id,upc,product_id')->get();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Laravel 5.6 预加载特定列不返回任何内容 的相关文章

随机推荐