我对我的问题有疑问,让我解释一下。。
我有这些模型,它是Product和ProductsVariant,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
的懒惰渴望加载,它将使用一个已经加载的关系实例(如果存在(。