У меня есть идея, как это сделать, но это не похоже на правильное соглашение. У меня есть модель Submission
и модель Revision
, каждая со своими таблицами с одинаковым именем. Каждый Submission
может иметь один или несколько связанных с ним Revision
s в отношении $hasMany
. Модель Revision
, следовательно, имеет отношение $belongsTo
, ссылающееся на Submission
.One Way One-to-One Association в CakePHP
В дополнение к наличию этого отношения, то Submission
модель должна иметь другую ассоциацию (называемое activeRevision
) к определенному Revision
в $hasOne
стиле отношений. Однако тип $hasOne
требует, чтобы внешний ключ находился в таблице Revision
. Я хочу, чтобы он находился в таблице Submission
, поэтому мне не нужно запрашивать все Submission
Revision
s, чтобы найти активный. Я понял, что просто указание отношения $belongsTo
в Submission
будет делать то, что я хочу, но мне это кажется неправильным, так как теперь две модели «принадлежат друг другу».
Есть ли лучший способ сделать это?
Достаточно хорошо для меня. И спасибо за то, что это лакомый кусочек. Мне было интересно, как это сделать. –
Рад, что я мог помочь, учитывая это условие, это не помешает неправильной записи * сохраненной * в 'revision_id'. Вам нужно будет добавить (пользовательское) правило проверки в своей модели и/или ограничение в базе данных. – thaJeztah