Добрый день уважаемые программисты ;)
Разбираюсь потихоньку в фреймворком yii2, а именно пишу интернет магазин. Хочется достигнуть некой гибкости, в связи с чем применяю такой подход:
1) Product - Таблица с товарами и общими характеристиками
2) Product_options - Опции товаров (например name: цвет, value: черный)
3) options_bundle - связка между товарами и определенной опцией
Используя hasMany() получается вот такой массив:
Array
(
[id] => 1
[name] => Товар 1
[price] => 100.2
[options] => Array
(
[0] => Array
(
[id] => 1
[product_id] => 1
[option_id] => 1
)
)
)
ProductController.php
$product = Product::find()->select(['id', 'name', 'price'])->with('options')->asArray()->where(['id' => $id])->one();
Product.php
public function getOptions()
{
return $this->hasMany(OptionBundle::className(), ['product_id' => 'id']);
}
Всю голову сломал, как реализовать связку с 3 таблицей - значением этих самых опций.
Прекрасно понимаю что задача довольно тривиальна, но все же по причине того что только начал разбираться с фреймворком не знаю как это сделать. Гугля и читая документацию просто напросто не могу додумать что к чему. Подскажите как это решается.