Автор |
Сообщение |
Vlad |
Добавлено: 09 Янв 2010 13:50:14 Заголовок сообщения: |
|
Давайте отсекать лишнее.
Я не понял - у вас Contain не работает? (забыли пока про paginate)
Если при банальной выборке, с использованием Контейна - вы не видите полей Country - то проблема в связях таблиц.
Если контейн работает, то проблема в педжинации. |
|
|
Serginho |
Добавлено: 08 Янв 2010 17:59:59 Заголовок сообщения: |
|
Да, собственно, не в условии дело.
Полей Country не видит как таковых, или contain без условий не работает?
Спасибо за ответ. |
|
|
Vlad |
Добавлено: 08 Янв 2010 17:46:19 Заголовок сообщения: |
|
Ну а чего же не вписали нужное вам условие?
'contain' => array('Country' => array('conditions' => array('Country.name LIKE'=>$Country)));
?
Или контейн должен был сам догадаться, какое условие вас интересует? )
И почему вы LIKE используете? |
|
|
Serginho |
Добавлено: 08 Янв 2010 17:06:29 Заголовок сообщения: |
|
В модели User
Код: |
var $actsAs = array('Containable');
|
В контроллере:
Код: |
$this->paginate = array(
'contain' => array('City', 'Country')
);
$this->paginate('User');
|
Что не так? |
|
|
Vlad |
Добавлено: 08 Янв 2010 16:05:08 Заголовок сообщения: |
|
Serginho
Так я не понял, Contain не работает что ли? Приведите код с использованием контейна... |
|
|
Serginho |
Добавлено: 08 Янв 2010 15:23:16 Заголовок сообщения: |
|
Serginho писал(а): | А теперь появился новый вопрос:
Вывести то я вывел, а каким образом мне сделать вот такой запрос:
Код: |
.....
$this->paginate = array(
'recursive' => 2
);
.....
$this->paginate('User',array('User.first_name LIKE' => $Keywords,'Country.name LIKE'=>$Country));
|
Поля Country.name напрочь не видит |
И всё же, есть какое то решение? |
|
|
Serginho |
Добавлено: 30 Ноя 2009 23:28:30 Заголовок сообщения: |
|
С помошью рекурсии, так как мои User и Country не звязаны между собой.
З.Ы. В кейке только несколько дней работаю, так что могу ошибаться. |
|
|
michas |
Добавлено: 30 Ноя 2009 23:18:02 Заголовок сообщения: |
|
Так каким способом решили задачу?
На мой взгляд контейна бы хватило... |
|
|
Serginho |
Добавлено: 30 Ноя 2009 17:05:54 Заголовок сообщения: |
|
Век живи - век учись.
В очередной раз спасибо. |
|
|
Vlad |
Добавлено: 30 Ноя 2009 16:52:46 Заголовок сообщения: |
|
А что, сделать запрос который, в отличие от LIKE будет СУРЬЁЗНО быстрее, никак низя?
City.country_id => $id
$id = число
И никаких LIKE запросов? М? |
|
|
Serginho |
Добавлено: 30 Ноя 2009 16:36:31 Заголовок сообщения: |
|
А теперь появился новый вопрос:
Вывести то я вывел, а каким образом мне сделать вот такой запрос:
Код: |
.....
$this->paginate = array(
'recursive' => 2
);
.....
$this->paginate('User',array('User.first_name LIKE' => $Keywords,'Country.name LIKE'=>$Country));
|
Поля Country.name напрочь не видит |
|
|
Serginho |
Добавлено: 30 Ноя 2009 15:28:54 Заголовок сообщения: |
|
Vlad, Большое спасибо! Именно то, что нужно. |
|
|
Vlad |
Добавлено: 30 Ноя 2009 14:44:43 Заголовок сообщения: |
|
Но если посмотреть на то, какое кол-во запросов генерит кейк.
Я бы, всё же, предложил не привязывать табличку Стран.
А сделать запрос (как у тебя был)
т.е. получать прсто country_id
Второе - добавить банальный Country->find all (только название - name)
Третье, при помощи В Set::подходящей функции добавить в City необходимое поле COuntry['name']
(Описание функции Set) http://evilbloodydemon.wordpress.com/2009/01/20/set-class-master-of-arrays/ |
|
|
Vlad |
Добавлено: 30 Ноя 2009 11:45:05 Заголовок сообщения: |
|
Ммм. Я правильно понял, нужно было вот это?
Код: |
app/controllers/users_controller.php (line 32)
Array
(
[0] => Array
(
[User] => Array
(
[id] => 1
[first_name] => John
[last_name] => Doe
[city_id] => 1
[email] => john.doe@gmail.com
)
[City] => Array
(
[id] => 1
[country_id] => 1
[name] => Kirovograd
[Country] => Array
(
[id] => 1
[name] => Ukraine
)
)
)
[1] => Array
(
[User] => Array
(
[id] => 2
[first_name] => Mike
[last_name] => Henrikson
[city_id] => 2
[email] => mike@yahoo.com
)
[City] => Array
(
[id] => 2
[country_id] => 2
[name] => New York
[Country] => Array
(
[id] => 2
[name] => USA
)
)
)
...
|
Если да, то в $this->paginate - добавляешь $recursive => 2
Если нет, то опиши ещё раз точнее - что тебе надобно |
|
|
Serginho |
Добавлено: 29 Ноя 2009 23:10:19 Заголовок сообщения: |
|
Без проблем, даже не знаю, как вас благодарить...
http://mfc-marcel.zzl.org/adress.sql |
|
|