【发布时间】:2011-09-29 03:38:44
【问题描述】:
我在 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")),
)
我看到正确的查询正在运行,但仍然可以按状态排序
【问题讨论】:
标签: cakephp pagination models