sorting - 在使用分页的 cakephp 3 中查找后如何对包括格式化的结果进行排序?
问题描述
所以我有一个我正在处理的项目,您可以通过注册和登录来添加“池”,或者填写打印格式并由管理员手动添加。在结果中,我希望能够使用关联的用户名、电子邮件和合作伙伴 ID 进行排序。
我有这个代码:
$this->paginate = [
'sortWhitelist' => [
'id', 'Users.username', 'Users.email', 'payed', 'Users.partner', 'created'
]
];
$pools = $this->Pools->find('all', [
'contain' => [
'Users'
]
])->formatResults(function (\Cake\Collection\CollectionInterface $results) {
return $results->map(function ($row) {
if($row['user_id'] === -1) {
$name = $this->Names->find('all', [
'conditions' => [
'pool_id' => $row['id']
]
])->first();
$row['user']['username'] = $name->name;
$row['user']['email'] = $name->email;
$row['user']['partner'] = $name->partner_id;
}
return $row;
});
});
$pools = $this->paginate($pools);
所以我在 formatResults() 方法中所做的是:如果用户与 -1 用户(这是打印格式之一)相关联,则在另一个表上找到它注册并更改的名称、电子邮件和合作伙伴空白关联到正确的关联,以便我可以在页面上显示它。结果运行良好,我得到了我想要的正确文本和数据。
问题是它没有正确排序修改后的行。无论如何,我可以做到这一点吗?
解决方案
推荐阅读
- audio - 如何使用 ffmpeg 从 mp4 文件中提取特定的音轨(轨道 2)?
- amazon-web-services - 在 electron-builder 中发布到 S3 给了我一些奇怪的工件
- python - 使用 pyspark 在多节点集群上使用 Spark
- symfony - symfony - 使用多个复选框过滤 manytomany
- node.js - 如何修复“语法错误:应为“#”、“\n”、“\r”或[\t],但找到“[”。” yargs 模块检索哪个?
- css - CSS 动画:元素超出容器顶部并增加边距
- c# - 在 C# 中递归地将嵌套的 JSON 转换为平面数组
- c# - 更新跨线调用错误的通用方法
- workflow - 创建采购订单工作流忽略具有某些项目的项目-> 位置
- java - JavaFX - 在 EventHandler 中切换场景