как установить отношение принадлежности в модели cakephp в зависимости от поля?

#cakephp-2.0 #belongs-to

#cakephp-2.0 #принадлежит

Вопрос:

У меня есть таблица уведомлений следующим образом :

 id
parent_type
parent_id
  

parent_type может быть историей, главой или контентом

Я хочу указать модель уведомлений :

-если parent_type равен story, то parent_id будет внешним ключом в Story -если parent_type равен chapter, то parent_id будет внешним ключом в Chapter -если parent_type равно content, то parent_id будет внешним ключом в Content

Возможно ли это?

Спасибо

Ответ №1:

Когда вы смотрите в книгу здесь:

http://book.cakephp.org/2.0/en/models/associations-linking-models-together.html#belongsto

в нем говорится, что вы можете задать условия в определении belongsTo. Таким образом, вы можете определить три разные ассоциации принадлежности с разными условиями, например:

 public $belongsTo = array(
    'Story' => array(
        'className' => 'Story',
        'foreignKey' => 'parent_id',
        'conditions' => array('Notification.parent_type' => 'story')
    ),
    ...
);