Cakephp 3 paginator排序字段具有翻译行为i18n

时间:2015-07-15 07:55:12

标签: sorting internationalization cakephp-3.0 paginator

我有PostsTranslate行为,我想在索引视图的表格上按标题对其进行排序。我无法按照翻译的字段进行排序,因为字段实际上并不存在于数据库中。它们存在于i18n表中。

正如我上面所解释的那样,这不起作用:

$this->Paginator->sort('title');
$this->Paginator->sort('Posts_title_translation.content');

那么,我该怎么办?我错过了什么?

非常感谢!

1 个答案:

答案 0 :(得分:2)

第二个变体应该在字段列入白名单后起作用,这通常是用于排序的关联所必需的:

$this->paginate = [
    // ...
    'sortWhitelist' => [
        'Posts_title_translation.content',
        // ...
    ]
];

请注意,在使用白名单的情况下,您必须添加Posts表中需要用于排序的所有其他字段!

另请参阅 Cookbook > ... Components > Pagination > Control which Fields Used for Ordering