访问变体内部的相关模型



我对我的问题有疑问,让我解释一下。。

我有这些模型,它是ProductProductsVariant,ProductVariant与产品模型有"belongsTo"关系。。和产品模型在ProductVariant中具有"hasMany"关系

我的问题是…

我确实为类似的产品的变体创建了Many

Product->variant()->create($variantProducts);

我想在ProductVariant模型上创建一些mutator来操作一个名为"sku"的列。

我的问题是,如何从mutator中获取一些列值,以从相关模型(Product(中获取数据,在这种情况下,我想从ProductVariant mutator 中获取Product的category_id

我试着这样做,但似乎不起作用

public function setSkuAttribut($v){
// product() is belongsTo relation to the product model
$cat = $this->product()->category_id;
dd($cat);
}

但它给我返回了这个错误

Undefined property: IlluminateDatabaseEloquentRelationsBelongsTo::$category_id

任何帮助都将不胜感激。。谢谢:(

您正在将product()关系方法作为方法进行调用,这意味着您正在接收一个Builder实例。为了获得模型实例,您必须执行->product()->get()->category_id,它将在每次情况下生成一个新的查询,或者使用带有->product->category_id的懒惰渴望加载,它将使用一个已经加载的关系实例(如果存在(。

最新更新