2017-07-27 82 views
1

我創建了3個表格:與這兩個表格有關的用戶,會議和請求,對於頁面會議/ 3會議ID爲3,我想要顯示所有在請求表中提交請求的用戶:我創建3級表的用戶,會議和要求如何得到誰請求會議的用戶?

用戶: 用戶 ID 名

會議: 會議 ID 名

要求: 請求 ID MEETING_ID REQUEST_ID

$requests = App\Requests::all(); 
          foreach ($requests as $request) 
          { 
           $user = App\User::where('id', $request->user_id)->first(); 
           echo $user->name . '<br>'; 
          } 

這顯示了用戶而不是由會議ID

如何從會議頁那裏是在請求表記錄用戶過濾?

+0

使用[Manu to Many relationship](https://laravel.com/docs/5.4/eloquent-relationships#many-to-many)! – Maraboc

回答

0

好吧,糾正我,如果我錯了。 你想從數據庫中的所有ID爲會議的用戶請求檢索= 3

與嘗試:

$requests = App\Requests::where('meeting_id', 3)->get(); 
foreach($requests as $request){ 
    echo $request->user->name; 
    echo '<br>'; 
} 

,並在您的模型,您應該設置一些關係,如:

您用戶模型:

public function requests(){ 
    return $this->hasMany('App\Request'); 
} 
在請求模型

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

你也可以這樣做:

$meeting = App\Meeting::find(3); 
$users = $meeting->users; 

這將允許你,如果你設置模型之間的關係,正確,檢索直接已提交該次會議的請求用戶。

檢查laravel的約關係文檔:laravel relationships

+0

工作過,但看起來像你很好,請告訴我該怎麼做:用戶可以創建會議,並且爲每個會議頁面我想顯示申請此會議的用戶,在請求表中有一列稱爲接受1被接受,0不是,所以這工作到目前爲止的用戶數據:名稱,圖像等,但我想從請求表中顯示接受的列,基本上我想顯示所有申請會議的用戶和那裏的狀態如果他們被接受,非常感謝 – Shark

+0

很高興它的工作。那麼,你只需要修改最初的請求就可以應用antoher過濾器,例如: '$ requests = App \ Requests :: where('meeting_id',3) - > where('accepted',1) - > get( );' 這將檢索所有的會議id = 3和接受= 1的請求。流程保持不變。 但是,我認爲你應該檢查有關查詢數據庫的laravel文檔。這是查詢生成器死了簡單...看看[文檔](https://laravel.com/docs/5.4/queries#introduction) – bLuke

+0

這工作!,謝謝 – Shark

0

我會在reuqests表假設request_id從用戶表的外鍵。

查詢應該是。

select u.users from users as u inner join requests as r on u.id=r.request_id where r.meeting_id=3; 

此查詢連接兩個表(usersrequests),並獲取給定meeting_id結果。

0

$請求=軟件\要求::在哪裏( 'MEETING_ID',3) - >獲得();

foreach($requests as $request){ 
    echo $request->user->name; 
    echo '<br>'; 
    echo $request->accepted; 
    echo '<br>'; 
}