Заказ CakePHP другим модельным полем в ассоциации - PullRequest
1 голос
/ 29 февраля 2012

только один быстрый вопрос о заказе. В программе cakePHP find. скажем, у меня есть 3 модели, связанные друг с другом. Когда я делаю запрос find('all') cakePHP для любой из 3 моих моделей, я получаю результаты, которые также включают данные из двух других моделей. Например, скажем, мои модели:

1- User
2- School
3- Country

Если я сделаю $this->find('all') внутри UsersController, потому что мои три модели связаны между собой, я получу что-то вроде этого:

Array
(
     [0] => Array
         (
              [User] => Array
                     (
                          [id] => 'the_auto_incrementing_id'
                          // other table columns 
                          [created] 'creation_date'
                          [modified] 'modification_date'
                     )
              [School] => Array
                     (
                          [id] => 'the_auto_incrementing_id'
                          // other table columns 
                          [created] 'creation_date'
                          [modified] 'modification_date'
                     )
              [Country] => Array
                     (
                          [id] => 'the_auto_incrementing_id'
                          // other table columns 
                          [created] 'creation_date'
                          [modified] 'modification_date'
                     )
         )
)

У меня такой вопрос, хотя мой find('all') запрос был инициирован на модели User, возможно ли orderBy, скажем, поле created в модели School, например?

Пожалуйста, дайте мне знать, если это вообще возможно

Спасибо

1 Ответ

1 голос
/ 29 февраля 2012

Если вы пытаетесь получить все связанные данные от пользователя, школы и страны, но сортируете по School.created (согласно вашему примеру), вы можете просто выполнить запрос из модели школы.

Я предполагаю, что вы находитесь в контроллере Users - если это так, это будет просто так:

$myData = $this->User->School->find('all', array('order'=>'School.created DESC'));

(нет необходимости загружать модель школы, так как она связана, - так что вы просто обратитесь кэто через модель User)

...