簡體   English   中英

在laravel中將數據傳遞給多對多關系船

[英]Pass the data in the many to many relation ship in laravel

我創建了一個表單,該表單將向用戶顯示事件標題,事件描述。 和代碼

public function show($id){

            $showevents = Events::findOrFail($id);
            return view('events.show',compact('showevents'));
    }

我傳遞的該數據沒有用戶數據,但是它將為我提供特定的事件數據。 我的問題是如何與此一起傳遞用戶數據? 因為我的事件表沒有用戶信息,所以所有這些都在用戶表中。 我在視圖表單中嘗試了{{$ showevents-> user-> name}},但是它沒有提供用戶信息。

如果要檢索有關用戶的信息並將其發送到視圖文件,則也將需要用戶ID

為了使用戶ID隨處可見,您可以做的一件事是,當用戶登錄為時,在Session變量中設置用戶ID:

\Session::set('user_id',$userID);

然后,您可以使用以下命令在任何控制器中的任何位置獲取用戶ID

$id = \Session::get('user_id');

例如你的情況

public function show($id){
        $user_id = \Session::get('user_id');
        $user = User::findOrFail($user_id);

        $showevents = Events::findOrFail($id);
        return view('events.show',compact('showevents','user));
}

現在,您將在何處設置Session變量完全取決於您的代碼。我曾經在用戶成功登錄后進行設置,並且在退出時也要記住刪除會話數據。

\Session::flush();

首先{{$showevents->user->name}}當然會失敗,因為事件和用戶之間沒有任何聯系。

如果要在它們之間建立連接,則需要在事件表中使用user_id

如果要獲取用戶數據但沒有任何連接,則需要進行單獨的查詢。

$user = User::findOrFail($user_id);

return view('events.show',compact('showevents', 'user'));

您應該使用Eloquent的關系函數或將其包裝在Models關系函數中並使用它們。 查看Laravel文檔

暫無
暫無

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

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