【发布时间】:2018-10-21 07:08:34
【问题描述】:
这是一个用于跟踪用户爱好的简单应用程序。一个用户可以有很多爱好,这些爱好被组织成不同的爱好组。
所以我有 4 个相关表:users、users_hobbies、hobbies、hobby_groups。
users 是通过 users_hobbies 连接表与爱好建立多属性关联的关系。 爱好属于-属于一个爱好组,爱好组有-很多爱好
有道理,到目前为止非常简单。
在 UsersHobbiesController 中,我有:
$paginate = [
'contain' => [
'Hobby' => [
'fields' => ['id', 'name'],
'HobbyGroup' => [
'fields' => ['id', 'name']
]
]
]
];
另外,在我的 index() 函数中,我构建了分页。
$usersHobbies = $this->paginate('UsersHobby');
$this->set(compact('usersHobbies));
当我访问我的 index.ctp 视图文件中的 $usersHobbies 变量时,它具有我构建输出表所需的数据。它看起来像:
array(
(int) 0 => array(
'UsersHobby' => array(...),
'Hobby' => array(
'id' => 'abc-def-ghi',
'name' => 'Jet Skiing',
'HobbyGroup' => array(
'id' => 'oiuy-trew-qldf',
'name' => 'Watersports'
)
)
)
....
)
为了对输出表进行排序,我添加了一些排序列:
<th><?php echo $this->Paginator->sort('Hobby.name', 'Hobby'); ?></th>
<th><?php echo $this->Paginator->sort('Hobby.HobbyGroup.id', 'Hobby'); ?></th>
第一个标题用于对爱好名称进行排序。但我无法获得第二个标题来为 HobbyGroup 排序。有没有简单的方法来做到这一点?
我在 StackOverflow 上搜索了几个小时,但似乎找不到适合我的答案。谢谢。
【问题讨论】:
标签: php mysql cakephp pagination paginator