如何在Laravel中按日期排序消息

时间:2018-12-11 21:54:45

标签: laravel-5 eloquent vuejs2

我正在使用vueJs和laravel后端构建应用程序的聊天部分。我想提取按天分组的邮件。因此,当显示消息时,我希望它们看起来像这样。

  `Today
  **All messages sent and received today, ordered by time**
   Yesterday
   **Yesterday's messages**
   9/12/2018
  **Messages for that day**

在我的聊天模型中,我为此编写了一个访问器;

public function getMessagesAttribute(){ return $this ->groupBy(function($q){ return $q->created_at->format('Y-m-d'); });

但是,这与我在控制器中使用orderBy('created_at','ASC')时得到的结果没有任何不同。我将不胜感激,为您实现我想要的任何帮助/指导。

2 个答案:

答案 0 :(得分:0)

您可以将函数的结果输入到以第一个日期开始的循环中,将日期设置为变量,然后将其与下一个日期进行比较,如果下一个日期的值较小,则将其替换为下一个日期带有标题字段以进行分组。

$date=null;
$next_date=null;
while($this) {
  $date = $this->created_at;
  if($next_date != null && $next_date<$date) {
    *put your group title here*;
    *put date/message here*;
  } else {
    *put date/message here*;
  }

  $next_date=$date;
}

也许用它构建一个数组,或者类似的东西。

答案 1 :(得分:0)

ionic cordova add android

需要根据您的需求进行一些调整。但这应该可以解决问题。