Pagination 第二级关联表字段上的Cakephp排序

Pagination 第二级关联表字段上的Cakephp排序,pagination,cakephp-2.0,Pagination,Cakephp 2.0,我似乎有个奇怪的问题。 使用Cakephp2,我有3个相关的表,如: taxon->has genus_id genus -> has family_id 使用分类单元模型,我可以按预期正确检索所有数据。现在我想谈谈家庭问题。因此,我将连接手动写入paginate数组。如果我加上 'order' => 'Family.family desc' 对于直接分页数组,排序按预期工作。但只要有情人 sort:Family.family/direction:desc 不是url的

我似乎有个奇怪的问题。 使用Cakephp2,我有3个相关的表,如:

taxon->has genus_id

genus -> has family_id
使用分类单元模型,我可以按预期正确检索所有数据。现在我想谈谈家庭问题。因此,我将连接手动写入paginate数组。如果我加上

'order' => 'Family.family desc'
对于直接分页数组,排序按预期工作。但只要有情人

sort:Family.family/direction:desc

不是url的一部分。一旦这些参数被添加到url,订单部分就会被清空。如何避免这种行为并正确排序结果?

问题似乎在于Paginator.validateSort的实现。如果传递了排序参数,则验证排序检查(如果模型传递了字段)。此检查仅针对模型和直接(第一级)相关模型进行,但不针对具有更深嵌套关联的模型。 我通过修改validateSort方法解决了这个问题。我添加了(不是很优雅的)传递字段的可能性,后跟一个感叹号,如“Family.Family!”。即使检查失败,这些字段也会添加到订单数组中

问候

亚历克斯