Я просто думаю о том, возможно ли повлиять на модель, чтобы она возвращала значения в зависимости от того, какая сводная таблица загружена.
Модель, о которой я говорю, может быть продуктом или продуктом, являющимся частьюкомплекта продуктов.
Product
class Product extends Model
{
protected $fillable
= [
'title', 'price'
];
public function productAttributes()
{
return $this->belongsToMany(ProductAttribute::class)
->withPivot('value', 'title');
}
public function productBundleAttributes()
{
return $this->belongsToMany(ProductAttribute::class,
'product_product_attribute_bundle')
->withPivot('value', 'title');
}
}
Каждый продукт имеет несколько атрибутов (Модель: ProductAttributes). Здесь также каждый атрибут имеет определенные значения и сводную таблицу, которая указывает, какие значения должны использоваться для атрибута для продукта.
Пример
Product
:
ProductAttributes
:
material
: Кожа color
: зеленый
Следовательно, продукт может иметь несколько атрибутов (здесь: material,
color
). Атрибуты продукта могут быть определены в другом месте и назначены новому продукту через маску ввода для продукта.
Однако в новом продукте стандартные значения атрибутов также могут быть перезаписаны. Пример: материал - кожа, но это специальная кожа, и поэтому название атрибута больше не «кожа», а «кожа ягненка».
Для достижения этого у каждого атрибута продукта есть ось. таблица снова.
Теперь это становится слишком сложным для меня:
Если продукт принадлежит к пакету продуктов, он также должен иметь эти сводные таблицы - но изменение атрибута продукта в продукте. Комплектация не должна изменять данные атрибута для фактического товара. Таким образом, у продукта есть две сводные таблицы для его атрибутов:
- Одна, если вы находитесь в контексте "продукта"
- Одна, если вы находитесь в контексте "пакета продукта".
Теперь возникает вопрос: есть ли способ увидеть, в каком контексте расположен атрибут, чтобы облегчить получение сводных значений? Возможно ли даже, что
Product -> Attributes -> Leather -> Title автоматически возвращает заголовок сводной таблицы комплектов продуктов, если вы находитесь в контексте комплектов продуктов, или заголовок сводной таблицы продуктов, если этотразве это не так?