我正在尝试将产品价格属性附加到产品型号,但是当我打印时,它最终会出现内存错误。
当我对响应做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('App\Models\WeightUnit');
}
我的产品型号
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时,我会看到屏幕截图中的内容。
答案 0 :(得分:0)
$this->price()
仅为您提供查询构建器实例,将其替换为$this->price
然后将->with(
替换为->load(
:
return $this->price->load('weightUnit:id,unit');
急切加载在那里没有多大意义,你应该把它移到price()
:
return $this->hasMany(ProductPrice::class)->with('weightUnit:id,unit');