Я хотел бы знать, как (если это возможно) объединить (объединить) отношения в модели Yii.yii Комбинирование модели связи
У меня есть следующие модели:
- пользователя
- Страна
- Область
- Город
Отношения географическая иерархия Деталь:
- Страна имеет много провинций
- провинция имеет много городов
- Город имеет много Items
Страна и уровень провинции имеет много элементов: «через» => 'городов
Юзернейм -ографические отношения несколько сложнее:
- Пользователь - Страна (многие для многих)
- пользователь - Область (многие ко многим)
- пользователь - Город (многие ко многим)
Таким образом, пользователь может быть назначена на любой уровень географического и подразумевал назначение на все дочерних уровнях, что уровень в ,
например. Пользователь назначен в Канаде, Калифорнии и Чикаго, будет иметь доступ к:
- Все объекты во всех провинциях во всех городах Канады
- , а также всех элементов во всех городах в Калифорнии
- , а также все товары в Чикаго
Как таковой, я хотел бы видеть, какие элементы назначаются пользователю через их географические уровни. Поэтому я хотел бы установить отношение, которое позволит мне получить доступ ко всем элементам, назначенным им, просто путем доступа к свойству «items» (например, $ myUser-> items).
Эффективно я хотел бы объединить их в единое отношение называется «пунктов»:
'countryItems' => array(self::HAS_MANY, 'Item', array('id' => 'country_id'), 'through'=>'countries'),
'provinceItems' => array(self::HAS_MANY, 'Item', array('id' => 'province_id'), 'through'=>'provinces'),
'cityItems' => array(self::HAS_MANY, 'Item', array('id' => 'city_id'), 'through'=>'cities'),