У меня есть следующая модель в приложении CakePHP 1.2:
class Equipment extends AppModel {
var $name = 'Equipment';
var $belongsTo=array("City");
///
}
И модель моего города выглядит так:
class City extends AppModel {
var $name = 'City';
var $belongsTo=array("State");
///
}
Я не делаю ничего особенного в EquipmentController - просто получаю все оборудование с помощью Paginator.
Поэтому, когда я пытаюсь реализовать разбиение на страницы в виде, подобном этому:
<th><?php echo $paginator->sort('Equipment',"Equipment.name");?></th>
<th><?php echo $paginator->sort('City',"City.name");?></th>
<th><?php echo $paginator->sort('State',"State.name");?></th>
Я могу сортировать по названию оборудования и названию города, но сортировка по названию штата дает мне отсортированный список по City.id, а не по State.name. Я пытался использовать City.State.name, но это дало мне тот же результат. Я изменил «рекурсивное» свойство в обеих моделях на «2» с тем же результатом.
);
Почему это не работает? Кто-нибудь может дать мне обходной путь или показать, что я делаю не так?
РЕДАКТИРОВАТЬ Я забыл сказать, что я пробовал Containable, который тоже не работал. Вот как я это настроил:
$this->paginate = array(
"conditions" => array("Equipment.expire_time >"=>date("Y-m-d H:i:s"),
"Equipment.is_active"=>true
),
'limit' => 25,
'order' => array(
'Equipment.available_time' => 'asc',
),
'contain'=>array(
"City"=>array(
"fields"=>array("id","name"),
"State"=>array("fields"=>"name")),
)
И я вижу, что правильные запросы выполняются, но все еще могут сортировать по состоянию