ダッシュボードでチャットアプリケーションを構築し、他のユーザーが最後に送信したメッセージの通知を取得しようとしています。ここでGroupByと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がうまく一緒に遊ばないと言った人の投稿です。
ご協力いただきましてありがとうございます。
私は何かを考え出すことができるかどうかを今夜あなたの提案と一緒に遊びます。私は1つのメッセージを検索するつもりはない、私は通知に入れるためにすべてのアクティブな会話のための最後の新しいメッセージを取得するために探しています。だから、3人のユーザーが私が持っていた会話に戻ってきたときは、それらのメッセージをFacebookに似た「新しい通知」として正しく表示します。私はそれが理にかなったことを願うだから私はgroupBy()を使っているのです – max234435