У меня следующий вопрос.Содержит поведение, условия и пустой массив
Существует часть кода:
$result = $this->find('all', array(
'contain' => array(
'User' => array(
'fields' => 'id',
'conditions' => array(
'id' => $user_id
)
)
),
'fields' => 'url'
));
Эта находка() вызывается в методе класса модели проекта, и я хочу, чтобы получить только проекты, где User.id равны некоторый идентификатор пользователя передается в мой метод. Пользователь HABTM Project и Project HABTM Пользователь.
Но после выполнения у меня есть следующий:
app/views/projects/index.ctp (line 1)
Array
(
[0] => Array
(
[Project] => Array
(
[url] => http://purpled.biz
[id] => 1
)
[User] => Array
(
[0] => Array
(
[id] => 4
[ProjectsUser] => Array
(
[user_id] => 4
[project_id] => 1
[projects_users_role_id] => 0
)
)
)
)
[1] => Array
(
[Project] => Array
(
[url] => http://google.com
[id] => 2
)
[User] => Array
(
[0] => Array
(
[id] => 4
[ProjectsUser] => Array
(
[user_id] => 4
[project_id] => 2
[projects_users_role_id] => 0
)
)
)
)
[2] => Array
(
[Project] => Array
(
[url] => http://test.com
[id] => 3
)
[User] => Array
(
)
)
)
Как вы видите, есть последний массив с пустыми [User] массива, так как можно исключить этот пустой массив (весь [2] массив Я имею в виду) без использования foreach/if blocks? Я знаю, что использование bindModel будет делать все, но это не для моего вопроса;) Итак, как?
Спасибо! В результате я использовал unbindModel/bindModel для создания объединений и для фильтрации массива результатов. – purple 2010-12-12 19:55:38