У меня есть вопрос по поводу моей проблемы, позвольте мне объяснить ..
У меня есть эта модель, которая является Продукт и ProductVariant, ProductVariant имеет отношение «ownTo» в модели продукта .. и модель продукта имеет отношение «hasMany» в ProductVariant
Мой вопрос ...
я создал много вариантов, отличных от продукта, который похож на
Product->variant()->create($variantProducts);
и я хотел бы создать какой-нибудь мутатор в модели ProductVariant для управления одним столбцом под названием «sku».
Моя проблема в том, как получить значение столбца из мутатора, чтобы получить данные из связанной модели (продукта), в этом случае я хочу получить category_id продукта из мутатора ProductVariant
я пытаюсь сделать это, но похоже не работает
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
Любая помощь будет очень признательна .. спасибо :)
все еще есть ошибка, теперь ошибка пытается получить свойство не-объекта
Это может быть глупо, но уверены ли вы, что к $this прикреплен продукт? Если у вас dd($this->product), вы получите объект?






Вы вызываете метод отношения product() как метод, что означает, что вы получаете экземпляр Builder. Чтобы получить экземпляр модели, вам придется либо выполнить ->product()->get()->category_id, который будет делать новый запрос в каждом случае, либо использовать ленивую загрузку с ->product->category_id, которая будет использовать уже загруженный экземпляр отношения, если он есть.
У вас по-прежнему появляется ошибка, если вы снимаете скобки?
$cat = $this->product->category_id