Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
yuriyb Гость цитировать
|
Добавлено: 16 Дек 2008 10:58:41 Заголовок сообщения: paginate & contain |
|
|
добрый день
вот с таким кодом
Код: | $this->User->Behaviors->attach('Containable');
$this->User->bindModel(array('hasOne' => array('Profile'=>array
('className'=>'Profile','foreignKey'=> 'id')));
$this->paginate = array(
'order'=>array('name' => 'asc'),
'limit' => 5,
'fields'=> array
('User.id','User.name','User.username','User.img','Profile.rc'),
'contain'=>array(
'Profile'=>array(
'conditions'=>array('Profile.rc='.$this->data
['Profile']['rc'])
)) ); |
выводится весь список User , а нужны только те у которых
'Profile.rc='.$this->data['Profile']['rc']
SQL при этом такой
Цитата: | SELECT `User`.`id`, `User`.`name`, `User`.`username`, `User`.`img`,
`Profile`.`rs` FROM `users` AS `User` LEFT JOIN `profiles` AS
`Profile` ON (`Profile`.`id` = `User`.`id` AND `Profile`.`rc`=1) WHERE
1 = 1 ORDER BY `name` asc LIMIT 5 |
что нужно исправить что бы правильно работало ?
спасибо |
|
Вернуться к началу |
|
|
evilbloodydemon
цитировать
Зарегистрирован: 11 Окт 2007 20:32:19 Сообщения: 125
|
Добавлено: 16 Дек 2008 11:26:58 Заголовок сообщения: |
|
|
Код: |
$this->paginate = array(
'order'=>array('name' => 'asc'),
'limit' => 5,
'fields'=> array('User.id','User.name','User.username','User.img','Profile.rc'),
'contain'=>array('Profile'),
'conditions'=>array('Profile.rc' => $this->data['Profile']['rc'])
);
|
как насчет такого? _________________ поздняк метаться - ракеты в воздухе
jabber-конференция по CakePHP - xmpp:cakephp@conference.jabber.ru
Последний раз редактировалось: evilbloodydemon (16 Дек 2008 13:12:42), всего редактировалось 1 раз |
|
Вернуться к началу |
|
|
evilbloodydemon
цитировать
Зарегистрирован: 11 Окт 2007 20:32:19 Сообщения: 125
|
Добавлено: 16 Дек 2008 11:28:14 Заголовок сообщения: |
|
|
кстати при указании 'contain' в paginate, bindModel не нужен. _________________ поздняк метаться - ракеты в воздухе
jabber-конференция по CakePHP - xmpp:cakephp@conference.jabber.ru |
|
Вернуться к началу |
|
|
yuriyb Гость цитировать
|
Добавлено: 19 Дек 2008 01:33:36 Заголовок сообщения: |
|
|
так не работает
и без bindModel тоже не работает
Код: | Model "User" is not associated with model "Profile" |
вот так заработало
Код: |
$filter = array('Profile.rc' => $this->data['Profile']['rc']);
$this->paginate = array(
'conditions'=> $filter,
'fields'=> array('User.id','User.name','User.username','User.img'),
'order'=>array('name' => 'asc'),
'limit' => 20,
'contain'=>array('Geo'=>array('conditions'=> array('')),'Profile'=>array('conditions'=> array('')))
);
|
|
|
Вернуться к началу |
|
|
evilbloodydemon
цитировать
Зарегистрирован: 11 Окт 2007 20:32:19 Сообщения: 125
|
Добавлено: 19 Дек 2008 10:48:45 Заголовок сообщения: |
|
|
по-моему кто-то обманывает. это ровным счетом то же самое. _________________ поздняк метаться - ракеты в воздухе
jabber-конференция по CakePHP - xmpp:cakephp@conference.jabber.ru |
|
Вернуться к началу |
|
|
Vlad
цитировать
Зарегистрирован: 02 Ноя 2007 11:45:52 Сообщения: 241
|
Добавлено: 19 Дек 2008 11:06:52 Заголовок сообщения: |
|
|
evilbloodydemon прав. с Contain работает, а вот bindModel - не будет работать. |
|
Вернуться к началу |
|
|
|