如何组合来自两个模型的数据并按照cakephp中的创建日期(时间对象)对它们进行排序?

时间:2016-03-07 18:58:29

标签: sorting cakephp cakephp-3.x

消息和文件模型属于对话。 消息和文件都有一个创建的DATETIME字段。

我想根据创建的日期选择属于特定会话的所有邮件和文件,并将它们放入同一个Feed中。

如何?

这就是我的尝试。

headAndSelf(yourList){(h,l) => whatever}

它就像任何不是时间对象的字段上的魅力,例如id。

我已阅读此问题Combining lists of data from Multiple Models and sort them by date created in cakephp

但是因为cakephp 3将datetime转换为时间对象,所以我无法让Hash :: sort工作。

一种方法是,如果可以以某种方式关闭时间对象。这对我来说更麻烦。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

  

有什么建议吗?

将您的文件直接链接到messages表,而不是将它们链接到对话。您可以使用消息正文字段(或任何您调用保存消息的字段)将任何数据序列化到其中(例如,如果您想稍后翻译值)或者只是在其中包含文本字符串“Foo send File栏“。

如果您在消息表中添加message_type字段,则可以使用该字段中的字符串来标识消息类型,例如system

您当前的架构只是在数据库和应用程序级别上使它非常复杂,比必要复杂得多。