CakePHP: Как упорядочить результаты на основе двухуровневой модели глубокой ассоциации? - PullRequest
1 голос
/ 03 апреля 2010

Надеюсь, мне не нужно прибегать к пользовательским запросам.

Смежный вопрос: как мне получить данные, чтобы, если связанная модель была пустой, запись вообще не получалась, в отличие от пустого массива для связанной модели?

В качестве упрощенного примера, скажем, у меня есть следующие модели: Город -> Улица -> Дом

Как отсортировать результаты по городам по номерам домов?

Как мне получить Городские рестулы, в которых есть хотя бы один Дом? Мне не нужна запись с названием города и подробностями, а также пустой массив House, поскольку он портит результаты разбивки на страницы.

CakePHP извлекает записи Дома, принадлежащие Улице, в отдельном запросе, поэтому если поместить что-то вроде «House.number DESC» в поле «порядок» поискового запроса, появится ошибка «поле не существует».

Есть идеи?

Ответы [ 2 ]

3 голосов
/ 04 апреля 2010

Перед выполнением фактической операции запроса в вашем контроллере, установите условие заказа в модели.

$this->City->Street->hasMany['House']['order'] => "houseNo DESC";
2 голосов
/ 03 апреля 2010

По первому вопросу, я думаю, вы можете заказать результаты, указав порядок в ассоциации моделей.

Например, с улицы Модель:

var $hasMany = array('House'=>array('order'=>'address desc'))

Было бы трудно получить города с хотя бы одним домом без специального запроса, поэтому вам, возможно, будет лучше пойти по этому пути, чем тратить так много времени, пытаясь заставить его работать на торте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...