Привет,сдерживаемый на hasMany отношения
Я пытаюсь снести запрос, возвращенный из поиска, используя сдерживаемый в CakePHP.
например у меня есть 2 модели, пользователь и сообщение. Пользователь hasMany Post.
Теперь, когда я использую Containable на поиск называют так:
$User->id = 1;
$User->find('first', array(
'fields' => array('id'),
'contain' => array('Post')
))
Это не вернет соответствующий пост, а не просто возвращает идентификатор пользователя.
Он работает, однако, если я пытаюсь получить данные по-другому. то есть это работает:
$Post->find('first', array(
'fields' => array('id', 'user_id'),
'conditions' => array('Post.user_id' => 1),
'contain' => array('User')
))
это не делает:
$Post->find('first', array(
'fields' => array('id'),
'conditions' => array('Post.user_id' => 1),
'contain' => array('User')
))
Из возвращаемых значений я тогда предположить, что для Containable для работ, ForeignKey должен быть в поле.
Как тогда я смогу отфильтровать поля пользователя при первом вызове, поскольку ассоциация пользователя хранится в Post.user_id?
Любая помощь очень ценится! Благодаря.
-aw
ли сообщение belongTo пользователя? Возможно, вам нужно определить отношения в обоих направлениях, чтобы все работало. –
@deceze Я пробовал установить рекурсивный на 9999 (знаю, что 2 достаточно, но юмор меня). Но это не дает мне связанную запись, она работает, если я не ставил там спецификацию полей. i. e find ('all', array ('содержать' => 'Post')). , но мне нужно отфильтровать поля пользователя. –
Можете ли вы опубликовать код, демонстрирующий, как вы определили массив $ hasMany модели User? –