HAS_MANY и "одинаковые" связи

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Аватара пользователя
zolton007
Сообщения: 180
Зарегистрирован: 2013.08.16, 08:43
Откуда: Воронеж

HAS_MANY и "одинаковые" связи

Сообщение zolton007 »

Здравствуйте!
Возникла небольшая проблемка, заключающаяся в следующем: есть некая основная таблица записей, назовем её item и есть вторая таблица source, которая имеет древовидную структуру (поле src_parentid). Таблица items может быть связана с ней хитрым образом. Пример без лишних подробностей: если есть связь с src_id = 1, то должно быть еще три связи с src_id из диапазона 2-3, диапазона 4-5 и диапазона 6-9. Если src_id выбран 10, 11, или 12, то дополнительных связей не требуется. Может быть мутно, но так оно и есть ))) в итоге получилась таблица связей itm_src содержащая поля id, itm_id, src_id, src_link1, src_link2, src_link3 и модель ItmSource. Поля src_link* - не обязательные и по-дефолту null. Таким образом у нас есть следующие связи модели Item:

Код: Выделить всё

'itmsrc' => array(self::HAS_MANY, 'ItmSource', 'itm_id'),
'sources' => array(self::HAS_MANY, 'Source', 'src_id', 'through' => 'itmsrc') 
и следующие связи модели Source:

Код: Выделить всё

'parent' => array(self::BELONGS_TO, 'Source', 'src_parentid'),
'itmSrcs' => array(self::HAS_MANY, 'ItmSource', 'src_id'),
'link1' => array(self::HAS_ONE, 'Source', 'src_link1', 'through' => 'itmSrcs'),
'link2' => array(self::HAS_ONE, 'Source', 'src_link2', 'through' => 'itmSrcs'),
'link3' => array(self::HAS_ONE, 'Source', 'src_link3', 'through' => 'itmSrcs') 
т.е. если мы перебираем все source модели item у каждой из них мы можем получить link*
Проблема в следующем: выводятся только source у которых разный src_id. В большинстве случаев у меня, естественно, одинаковый src_id, но разные значения link*. Я что-то явно не вкуриваю. Что я делаю не так? Помогите плз :oops:
Ответить