sorting - Cakephp 3 分页器使用翻译行为 i18n 对字段进行排序

标签 sorting internationalization cakephp-3.0 paginator

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

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

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

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

非常感谢!

最佳答案

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

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

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

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

关于sorting - Cakephp 3 分页器使用翻译行为 i18n 对字段进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31424584/

相关文章:

java - 根据键和值对映射进行排序

javascript - 对两个单独的 JS DataTable 中的两个不同的列索引进行排序

sql - 使用给定的开始月份对 12 个月 (1-12) 进行排序

asp.net-mvc-3 - ASP.NET-MVC 3:本地化

java - Spring MVC 本地化 - 找不到属性文件

mysql - CakePHP 3 - 查找器未加载正确的数据

javascript - 如何在我的 Angular 代码中使用 angular-sortable-view?

sql-server - 如何安全地使用保留的 SQL 名称?

mysql - CAKEPHP3 hasMany 与多个值关联

mysql - 合并同一个表中的 2 个字段?