CakePHP - Пользовательская ассоциация объектов hasOne - Использование таблицы соединений вместо внешних ключей в таблице? - PullRequest
1 голос
/ 22 сентября 2010

В CakePHP я пытаюсь построить отношение $ hasOne, но не могу добавить внешний ключ к таблицам (по устаревшим причинам). Есть ли способ, как я могу создать таблицу соединений (object1_object2) и связать их вместе, как это? Я хочу использовать мощные функциональные возможности Cake для взаимодействия с объектами, поэтому, если есть способ, которым я могу сделать эту настраиваемую ассоциацию постоянной в рамках модели, не всегда создавая собственный массив $ options для каждого find (), это было бы здорово. (Может быть, bindModel в инициализации модели)?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 23 сентября 2010

Если вы хотите использовать объединяющую таблицу, я полагаю, что вам придется использовать отношение hasAndBelongsToMany (HABTM), даже если у вас никогда не будет «много». Данные, очевидно, будут вести себя иначе, чем стандартные отношения hasOne, но, по крайней мере, отношения будут существовать.

Возможно, есть способ обойти это, используя поле 'condition' отношения hasOne, но я подозреваю, что вам все равно придется указать внешний ключ (или он все равно будет по умолчанию 'object2_id'), и он, вероятно, все еще попытается сделать соединение на основе этого внешнего ключа.

0 голосов
/ 22 сентября 2010
...