我正在尝试将产品价格属性附加到产品型号,但是当我打印它时,它最终给出了内存不足错误。 当我dd
响应时,它会给我一些查询生成器错误。 谁能帮帮我?
我的数据库和模型如下:
我有三个表products
,product_price
和weight_units
。 在[![product_price][1]][1]
表中我有product_id , price, weight, weight_unit_id
,在weight_units
我有unit
.
我的product_price模型
public function weightUnit()
{
return $this->belongsTo('AppModelsWeightUnit');
}
我的产品型号
protected $appends = ['product_price'];
public function price(){
return $this->hasMany(ProductPrice::class);
}
public function getProductPriceAttribute(){
return $this->price()->with('weightUnit:id,unit');
}
我的控制器
$data= Product::take(2)->get();
echo '<pre>';
dd($data->toArray());
当我尝试打印它时,它会给出内存不足错误,当我做 dd 时,我可以看到屏幕截图中的内容。
$this->price()
只给你一个查询生成器实例,用$this->price
替换它。
然后将->with(
替换为->load(
:
return $this->price->load('weightUnit:id,unit');
急切加载在那里没有多大意义,您应该将其移至price()
:
return $this->hasMany(ProductPrice::class)->with('weightUnit:id,unit');