簡體   English   中英

選擇從user_id到user_id的消息

[英]Selecting messages from user_id to user_id

我試圖使真正簡單的功能用戶能夠僅向管理員發送消息,並由管理員對此消息進行回答。

到目前為止,我已經用以下各列制作了表格message

id | from_id | to_id | subject | message 

在控制器中,我應該選擇發送給當前登錄用戶的所有消息(不確定是否正確)

public function index(){
        //$messages = Message::latest()->get();
    $currentUser = Auth::user()->id;
    $messages = Message::
        whereRaw('message.id = (select max(id) from `message` m2 where m2.to_id = '.$currentUser.')' )
        ->orderBy('id', 'desc')
        ->get();        
    return view('test.index', compact('messages'));
}

現在我正在嘗試使viewMessage函數

在索引刀片中,這是單個消息的鏈接

{!! link_to('test/view/' . $message->from_id, $message->subject) !!}

我的路線

Route::get('test/view/{id}', 'MessageController@messageView')->name('test.view');

和控制器功能

public function messageView($id) {

    $user = User::where('id', $id)->first();

    $messages = $user->messages()->orderBy('created_at', 'asc')->get();
    return View::make('test.view', compact('messages'));
}

當我單擊按鈕時,出現此錯誤

SQLSTATE [42S22]:柱未找到:(:SELECT * FROM SQL 1054未知列在'where子句' 'message.user_id' message ,其中messageuser_id = 4和messageuser_id不是由空順序created_at ASC)

在用戶模型中,我添加了與消息的關系,例如:

public function messages() {
    return $this->hasMany('App\Message');
}

在消息模型中

public function user(){ 
    return $this->belongsTo('App\User');
}

我的問題為什么在我的按鈕上發送from_id時在查詢中正在尋找user_id以及如何解決這個問題?

為什么在查詢中尋找user_id

您需要在該關系中添加外鍵和ID來修復錯誤,例如:

public function messages() {
    return $this->hasMany('App\Message', 'from_id', 'id');
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM