具有翻译行为 i18n 的 Cakephp 3 分页器排序字段

Cakephp 3 paginator sort fields with translate behavior i18n

我有一个具有 Translate 行为的 Posts table,我想在索引视图的 table 上按标题对其进行排序。我无法按已翻译的字段排序,因为该字段实际上并不存在于数据库中。它们存在于 i18n table.

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

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

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

非常感谢!

一旦字段被列入白名单,第二个变体应该可以工作,这通常是关联用于排序所必需的:

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

请注意,有了白名单后,您还必须添加 Posts table 中需要用于排序的所有其他字段!

另见 Cookbook > ... Components > Pagination > Control which Fields Used for Ordering