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

Paginate вопрос

 
Начать новую тему   Ответить на тему    Список форумов Cake-PHP.ru -> Общий
Предыдущая тема :: Следующая тема  
Автор Сообщение
Kondrat
Гость
цитировать






СообщениеДобавлено: 15 Мар 2008 22:10:46    Заголовок сообщения: Paginate вопрос Ответить с цитатой Изменить/удалить это сообщение

Не могу понять: У меня ассоциация Model1->Model2
Пытаюсь написать что-то типа
Код:

    $conditions = array('Model1.columnX' = 1, 'Model2.columnY' = 2);
    $this->set( 'smths', $this->paginate('Model1',$conditions) );

Пишет, что
SQL Error: 1054: Unknown column 'Model2.columnY' in 'where clause'


Help
Embarassed
Вернуться к началу
xxx

цитировать



Зарегистрирован: 03 Мар 2008 15:58:41
Сообщения: 24

СообщениеДобавлено: 15 Мар 2008 22:21:21    Заголовок сообщения: Ответить с цитатой

вторая моделька подключенна в контроллер?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Kondrat
Гость
цитировать






СообщениеДобавлено: 15 Мар 2008 22:34:34    Заголовок сообщения: Ответить с цитатой Изменить/удалить это сообщение

Я не совсем понимаю, как это правильно сделать.
пытался типа тка:
Код:

var $paginate = array( 'Model1' =>  array( 'limit' => 2, 'order' => array('Model1.id' => 'desc' ) ),
'Model2' );

не помогло
Вернуться к началу
DeeperMD

цитировать



Зарегистрирован: 08 Фев 2008 15:04:11
Сообщения: 144
Откуда: $Молдова->Кишинёв->Буюканы()

СообщениеДобавлено: 17 Мар 2008 11:59:51    Заголовок сообщения: Ответить с цитатой

Наврядли так получиться..
Код:
$conditions = array('Model1.columnX' = 1, 'Model2.columnY' = 2);


Потому как переменная $conditions напрямую отправляется в SQL запрос, интересно откуда в запросе известно про стороннюю модель.. Для этого делайте joinModel
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Kondrat
Гость
цитировать






СообщениеДобавлено: 17 Мар 2008 14:49:25    Заголовок сообщения: Ответить с цитатой Изменить/удалить это сообщение

Я про joinModel что-то не нашел в мунуале.
Вы можете пример показать.

Спасибо.
Rolling Eyes
Вернуться к началу
DeeperMD

цитировать



Зарегистрирован: 08 Фев 2008 15:04:11
Сообщения: 144
Откуда: $Молдова->Кишинёв->Буюканы()

СообщениеДобавлено: 17 Мар 2008 14:51:35    Заголовок сообщения: Ответить с цитатой

http://api.cakephp.org/1.2/class_model.html#be05a2a38406262a0c283c07ced4a818
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Kondrat
Гость
цитировать






СообщениеДобавлено: 17 Мар 2008 15:37:19    Заголовок сообщения: Ответить с цитатой Изменить/удалить это сообщение

А все-таки для тех, кто в танке. Уже 5 способов попробовал.
Просто пример кода с joinModel. Или на словах.
Rolling Eyes
Вернуться к началу
DeeperMD

цитировать



Зарегистрирован: 08 Фев 2008 15:04:11
Сообщения: 144
Откуда: $Молдова->Кишинёв->Буюканы()

СообщениеДобавлено: 17 Мар 2008 16:02:06    Заголовок сообщения: Ответить с цитатой

Это появилося тока в 1.2 инфы очень мало..

Сорри но нет времени разбираться..
Могу объяснить тока теорию..

Сами понимаете чтобы задать условия в SQL для двух таблиц нужно их соединить в одно запросе. Для этого делается joinModel, т.е. в результате должно получиться что в запрос будет добавлена не одна таблица а еще и вторая и третяя.. условия для которых вы и прописали в:
Код:
$conditions = array('Model1.columnX' = 1, 'Model2.columnY' = 2);


без joinModel, в запросе нет указания что используется сторонняя модель Model2, поэтому и получаете ошибку..
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
euroz_ford
Гость
цитировать






СообщениеДобавлено: 17 Мар 2008 16:48:27    Заголовок сообщения: Запчасти Ford, Двигатель Форд, КПП Форд Ответить с цитатой Изменить/удалить это сообщение

Запчасти Ford Transit, Запчасти Ford connect, Запчасти Ford Maverik, Запчасти Форд транзит в наличии со склада в Москве .
Всегда на складе запчасти Форд фокус, КПП Форд Транзит, Двитель Форд транзит, турбина Форд транзит, Форсунки Форд.
http://www.eurozapchast.ru/ - Запчасти Форд поршня Форд, колнвал Форд,
ГБЦ Форд, распредвал Форд, Неоригинальные запчасти Форд, Поставка запчастей Форд.
http://www.eurozapchast.ru/ - Запчасти ford


Последний раз редактировалось: euroz_ford (20 Янв 2009 02:46:02), всего редактировалось 2 раз(а)
Вернуться к началу
DeeperMD

цитировать



Зарегистрирован: 08 Фев 2008 15:04:11
Сообщения: 144
Откуда: $Молдова->Кишинёв->Буюканы()

СообщениеДобавлено: 17 Мар 2008 16:52:49    Заголовок сообщения: Ответить с цитатой

Ну вообще другое имелось ввиду..

Я бы в первой модели присоединил вторую модель и использовал как вы и хотели..
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Kondrat
Гость
цитировать






СообщениеДобавлено: 17 Мар 2008 17:16:10    Заголовок сообщения: Ответить с цитатой Изменить/удалить это сообщение

Цитата:

Я бы в первой модели присоединил вторую модель и использовал как вы и хотели..

У меня есть ассоциация hasMany. Model1->Model2.
Я именно не понимаю как к первой модели присоединить вторую и использовать paginate. Те может это просто, я наверное в простом вопросе запутался. (Я еще не очень хорошо разбираюсь в cake)
Sad
Вернуться к началу
DeeperMD

цитировать



Зарегистрирован: 08 Фев 2008 15:04:11
Сообщения: 144
Откуда: $Молдова->Кишинёв->Буюканы()

СообщениеДобавлено: 17 Мар 2008 17:27:59    Заголовок сообщения: Ответить с цитатой

Ассоциации здесь не причем...

Ассоциация соединяет модели на уровне результатов..

А вам я так понимаю нужно объединить модели до запроса. Чтобы SQL выдал нужные записи первой модели..

У вас должен получить запрос:

Код:
 SELECT * FROM table1 as Model1, table2 as Model2 WHERE Model1.columnX=1 AND Model2.columnY=2


Этот запрос даст вам то что вы хотите. Как это решить с помошью пирожка точно не знаю но догадываюсь что через joinModel...

В принципе если хотите то можете написать отдельный метод для первой модели который исполняет этот запрос...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Kondrat
Гость
цитировать






СообщениеДобавлено: 17 Мар 2008 17:54:59    Заголовок сообщения: Ответить с цитатой Изменить/удалить это сообщение

ОК, буду искать.
Конкретную мою задачу я уже давно решил, переделал модели... но это к вопросу не относится. Я findAll приводил, тк в мануале написано, что paginate работает как findAll, но в findAll все элементарно, в 1 строчку пишется. А без paginate я уже пирожок не представляю.
Вернуться к началу
Vlad

цитировать



Зарегистрирован: 02 Ноя 2007 11:45:52
Сообщения: 241

СообщениеДобавлено: 15 Сен 2008 10:07:17    Заголовок сообщения: Ответить с цитатой

Удалось решить задачу?

Я сейчас как раз над аналогичной проблемой бьюсь.

Есть несколько связанных моделей, хочу получить paginate для Related модели.

И не выходит Sad

То есть если делать запрос findAll - тогда отлично работает и хитрый запрос, и behaviors Containable...

Но стоит включить paginate - как всё. Уходит в бесконечный цикл...

(версия кейка 1.2)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Vlad

цитировать



Зарегистрирован: 02 Ноя 2007 11:45:52
Сообщения: 241

СообщениеДобавлено: 15 Сен 2008 11:14:10    Заголовок сообщения: Ответить с цитатой

О. Сам себе отвечу Smile

http://cakebaker.42dh.com/2007/10/17/pagination-of-data-from-a-habtm-relationship/
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Имя
Сообщение

Смайлики
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