Итак, я пытаюсь это сделать прошлой ночью, и несколько раз подумав о кругах, я решил помочь. Я задал вопрос о том, что поле ID не заполнено, но оно слишком длинное и запутанное, и я понял, что проблема, вероятно, основана на ассоциациях.Как правильно установить несколько ассоциаций между 3-мя моделями (CakePHP)
Я работаю над клиентской базой данных. Для крупных бизнес-клиентов отношения становятся немного сложными. У меня есть 3 модели, Customer, CustomerAddress и CustomerContact. У клиента может быть много адресов и много контактов, но контакты также основаны на одном адресе, поэтому адрес имеет много контактов.
Конечный результат, который я пытаюсь достичь, - это возможность поиска данных в обоих направлениях, например.
Customer -> Address 1 -> Contact 1, Contact 2, Contact 3, etc....
Address 2 -> Contact ... ... ...
....
Или ....
Customer -> Contact 1 -> Address
Contact 2 -> Address
....
Проблема у меня в том, что адрес должен hasMany
контакты и контакт должен hasOne
адрес, но эти 2 отношения конфликта, потому что другая сторона должна belongsTo
и это не так.
Как минимум: в таблице контактов сохраните первичный ключ таблицы адресов. В таблице адресов сохраните первичный ключ таблицы Customer. Использование CakePHP с использованием _hasOne_ осложняет анализ. Ваш контакт _belongsTo_ адрес. FYI: hasOne не так распространен, как относится к схемам базы данных. – AgRizzo
Да, сейчас у меня это работает, как в первом примере, который я опубликовал. Проблема в том, что я не могу искать контакты, не просматривая все адреса. – Dabrowski
Отношения не обязательно должны быть взаимными. Почему вы не можете использовать адрес hasMany Contacts? –