Возможно ли каким-либо образом создать отношение hasMany, которое использует идентификатор вне Модели? Например, у одного пользователя много комментариев, но я бы хотел найти только комментарии вошедшего в систему пользователя:
public $hasMany = array(
'MyComment' => array(
'className' => 'Comment',
'foreignKey' => 'user_id',
'dependent' => false,
'conditions' => array('Comment.user_id' => $loggedinUser_id),
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'exclusive' => '',
'finderQuery' => '',
'counterQuery' => ''
)
);
Я думал о передаче $ loggedinUser_id в контроллерах beforeFilter () в модель. Это хороший способ решить эту проблему или есть лучшие способы?
Любое предложение приветствуется. Большое спасибо!
Вы всегда и только собираетесь получать доступ к комментариям зарегистрированного пользователя? Разве вы не захотите когда-нибудь показывать комментарии других людей?
Я предлагаю вам просто установить это как условие при каждом вызове Model::find() из вашего контроллера.
Кроме того, в зависимости от конкретных типов отношений вам может потребоваться использовать поведение Containable для фильтрации на основе критериев связанной модели (обычно для HABTM, а не для HM).