У меня есть следующий код, который совпадающий с user_id отношений hasMany. Примеры результатов, которые я получаю обратно следующим образом:CakePHP удалить пустые hasMany результаты
array(
(int) 0 => array(
'Scorecard' => array(
'id' => '529e400a-6e98-4471-8465-04470a0a0a0a',
'course_id' => '0a111cdd-4732-11e3-98e6-080027f3add4',
'flag_count' => '0',
'status' => '1',
),
'ScorecardsUser' => array(
(int) 0 => array(
'id' => '529e400a-8a30-4e63-b6c6-04470a0a0a0a',
'user_id' => '527d5dff-e9a0-40c0-8512-04510a0a0a0a',
'scorecard_id' => '529e400a-6e98-4471-8465-04470a0a0a0a',
'gross_score' => '50',
'points_score' => '0',
'match_score' => '0',
'handicap' => '0',
'team' => '0',
'created' => '2013-12-03 20:33:14',
'modified' => '2013-12-03 20:33:14'
)
)
),
(int) 1 => array(
'Scorecard' => array(
'id' => '52b0c20d-61e8-425d-9b8c-05d40a0a0a0a',
'course_id' => '0a111cdd-4732-11e3-98e6-080027f3add4',
'flag_count' => '0',
'status' => '1',
),
'ScorecardsUser' => array()
),
)
Первый результат находит именно то, что я ожидал. Тем не менее, user_id не совпадает со вторым, поэтому результат нечеткий для ScorecardsUser. Однако, должен ли этот второй результат вообще выйти, поскольку он не соответствует условию модели hasMany?
Это код в Scorecard Модели:
public function getUsersScoreCards($user_id = null) {
$this->bindModel(array(
'hasMany' => array(
'ScorecardsUser' => array(
'conditions' =>array(
'ScorecardsUser.user_id' => $user_id
)
)
)
));
$this->recursive = 1;
$this->Behaviors->load('Containable');
$contain = array('ScorecardsUser');
return $this->find('all', array('conditions' => array('Scorecard.status' => 1), 'contain' => $contain));
}
Блестящий ответ. Благодарю. Я всегда делал вариант 2 и ненавидел его, думал, что это просто уродливо. Исследует метод соединения. – Mezzair