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

时间:2013-07-12 13:30:02

标签: pagination cakephp-2.0

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

taxon->has genus_id

genus -> has family_id

使用Taxon模型我可以按预期正确地检索所有数据。现在我想对家庭进行评论。因此我手动将连接写入paginate数组。如果我添加

'order' => 'Family.family desc'

直接到paginate数组,排序按预期工作。但只有params

sort:Family.family/direction:desc

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

1 个答案:

答案 0 :(得分:0)

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

此致

亚历