Здравствуйте! Есть у меня 2 таблицы:
CREATE TABLE `orders` (
`id` INT(255) NOT NULL AUTO_INCREMENT,
`user_name` VARCHAR(255) NOT NULL,
PRIMARY KEY (`id`)
)
CREATE TABLE `goods` (
`id` INT(255) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(255) NOT NULL,
`price` DECIMAL(10,2) NOT NULL,
PRIMARY KEY (`id`)
)
А также 3 таблица, которая является связующей:
CREATE TABLE `orders_goods_assigment` (
`id` INT(255) NOT NULL AUTO_INCREMENT,
`order_id` INT(255) NOT NULL,
`goods_id` INT(255) NOT NULL,
PRIMARY KEY (`id`)
)
Я попытался реализовать связь между таблицами
orders и
goods так (в модели Order):
public function relations() {
return [
'goods' => [
self::MANY_MANY,
'Goods',
'orders_goods_assigment(order_id, goods_id)'
]
];
}
К сожалению, если у меня, например, несколько одинаковых товаров ссылается на один и тот же заказ, то Yii считает, что такой товар всего один.
INSERT INTO `orders_goods_assigment` (`order_id`, `goods_id`) VALUES (1, 2);
INSERT INTO `orders_goods_assigment` (`order_id`, `goods_id`) VALUES (1, 2);
INSERT INTO `orders_goods_assigment` (`order_id`, `goods_id`) VALUES (1, 2);
Если внести в таблицу эти 3 строки, то при загрузке поля
goods в модели
Order, Yii покажет нам массив с 1 записью (вместо 3 одинаковых).
$order = Order::model()->findByPk(1);
print_r($order->goods); # Array([0] => Goods)
Подскажите пожалуйста, в чем я ошибся?