Создание приложения чата с помощью панели мониторинга и попытка получить уведомление о последнем сообщении, отправленном другим пользователем.GroupBy and OrderBy Laravel Eloquent
Вот моя модель отношения:
public function messages() {
return $this->hasMany('App\Message', 'author_id');
}
public function lastMessage() {
return $this->hasMany('App\Message', 'recipient_id')->orderBy('created_at', 'DESC')->groupBy('author_id');
}
На вещи, которую я не могу понять, является вместо возвращения последнего сообщения, как это должно быть отсортировано с помощью OrderBy, он возвращает первую запись этой группы, которая существует в базы данных.
Посмотрел онлайн, но не мог найти информацию об этом. Единственное, что я нашел, это сообщение того, кто сказал, что orderBy и groupBy в laravel не играют хорошо вместе.
Любая помощь приветствуется!
Я буду играть с вашими предложениями сегодня вечером, чтобы узнать, могу ли я что-то понять. Дело в том, что я не ищу, чтобы получить 1 сообщение, я ищу, чтобы получить последнее новое сообщение для каждой активной беседы, чтобы вставлять уведомления. Поэтому, если 3 пользователя обменяли меня сообщениями, которые у меня были с ними, я хочу, чтобы эти сообщения отображались как «новые уведомления», похожие на facebook. Я надеюсь, что в этом есть смысл. Вот почему я использую groupBy() – max234435