Laravel: как сделать ключ имени столбца?

Я уже некоторое время склоняюсь над этой проблемой. Может ли кто-нибудь помочь мне?

У меня есть две таблицы: products и product_attributes. Продукт имеет всю основную информацию о продукте, а product_attributes содержит всю конкретную информацию о продуктах различных категорий. Это очень похоже на систему пурпурных атрибутов. эта таблица имеет 4 столбца: id, product_id, attribute_name, attribute_value.

Теперь предположим, что продукт имеет 2 атрибута:

------------------------------------------------------
| id | product_id | attribute_name | attribute_value |
------------------------------------------------------
| 1  | 123        | length         | 123cm           |
------------------------------------------------------
| 2  | 123        | material       | Denim           |
------------------------------------------------------
| 3  | 123        | season         | Summer          |
------------------------------------------------------

Теперь, если я устанавливаю красноречивые отношения и запрашиваю продукт, я получаю объект продукта со всеми тремя атрибутами. Пока это то, что я хотел. Но теперь в шаблоне лезвия я хотел бы иметь возможность сделать что-то вроде этого:

$product->attribute->length

Возможно ли это вообще, или мне нужно добиться такого рода вещей с совершенно другим подходом (например, создание разных таблиц для разных типов продуктов / категорий)?

Заранее спасибо!

0

Решение

длина — это значение кортежа, а не нужный вам атрибут

$product->attribute->where('attribute_name', 'length')

или же

$product->attribute->whereAttributeName('length')
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]