首页 > 解决方案 > Laravel 7 - 发送 ajax 请求以获取收件箱中特定联系人的最新 (n) 条消息,并将它们呈现到页面获取的 _messages

问题描述

需要在 fetched_messages 上呈现 JSON 数据

ChatController @method "fetchMessages"

/**
 * Fetch all messages related to specific contact
 *
 * @return Message
 */
public function fetchMessages($id)
{

    $messages = DB::table('messages')
       ->where(function ($query) use($id) {
           $query->where('sender_id', Auth::user()->id)
                 ->where('receiver_id', $id);
       })
       ->orWhere(function ($query) use($id) {
           $query->where('sender_id', $id)
                 ->where('receiver_id', Auth::user()->id);
       })
       ->latest()
       ->paginate(20);
    return Response::json($messages);
  
}

Ajax 用于从刀片获取 id 到 ChatController

$(document).ready(function(){

    $.ajaxSetup({
        headers: {
            'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        }
    });
    $('.tab-next').click(function(e){
        e.preventDefault();
        let index = $(this);
        let userId = $(this).attr('user-id');
        $.ajax({
            type:'GET',
            url:'/messages/fetch/' + userId,
            success:function(response){
                console.log(response);
   
            }
        });
    });
    
});

web.php 上的聊天路线

Route::get('messages', 'ChatsController@index')->name('msg');
Route::get('messages/fetch/{id}', 'ChatsController@fetchMessages')->name('msg.fetch');
Route::get('messages/post', 'ChatsController@sendMessage')->name('msg.post');

任何帮助,将不胜感激。提前致谢

标签: laravel

解决方案


推荐阅读