Список форумов Cake-PHP.ru Cake-PHP.ru
Форум программистов CakePHP
(на сайт)
 
 Watched TopicsWatched Topics   FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

paginate & contain

 
Начать новую тему   Ответить на тему    Список форумов Cake-PHP.ru -> Общий
Предыдущая тема :: Следующая тема  
Автор Сообщение
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 - не будет работать.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Имя
Сообщение

Смайлики
Very Happy Smile Sad Surprised
Shocked Confused Cool Laughing
Mad Razz Embarassed Crying or Very sad
Evil or Very Mad Twisted Evil Rolling Eyes Wink
Exclamation Question Idea Arrow
Дополнительные смайлики

 
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Cake-PHP.ru -> Общий Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы можете начинать темы
Вы можете отвечать на сообщения
Вы можете редактировать свои сообщения
Вы можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group
Русская поддержка phpBB

Рейтинг@Mail.ru