我对自己的问题有疑问,所以让我解释一下。
我有这些模型,分别是 Product 和 ProductVariant ,ProductVariant与产品模型具有“属于”关系。而产品模型与产品模型具有“具有”关系 ProductVariant
我的问题是...
我确实为类似产品的产品创建了很多
Product->variant()->create($variantProducts);
并且我想在ProductVariant模型上创建一些变体,以操纵一个称为“ 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: Illuminate\Database\Eloquent\Relations\BelongsTo::$category_id
任何帮助将不胜感激..谢谢:)
答案 0 :(得分:0)
您正在将product()
关系方法作为方法来调用,这意味着您将收到一个Builder实例。为了获得模型实例,您将不得不执行->product()->get()->category_id
,这将在每种情况下进行一次新查询,或者使用带有->product->category_id
的延迟加载,这将使用已经加载的关系实例。如果有的话。