2017-02-28 39 views

回答

0

如果正確定義你的人際關係,你

$users = User::with('projects')->get(); 

//show each user projects 
foreach($users as $user) { 
    echo $user->projects; 
} 

//Getting project users 
$projects = Project::with('users')->get(); 

這會給你一個項目列表,每個列表中,你可以看到哪些用戶具有訪問權限或沒有。

更新

以項目與指定的user_id

$projects = Project::with(['users' => function ($query) use ($user_id) { 
    $query->where('user_id', '=', $user_id); 
}])->get(); 

新代碼 或嘗試獲取用戶

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

或通過項目,由USER_ID

約束
$projects = Project::with('users')->whereHas('users', function ($query) use ($user_id) { 
    $query->where($user_id); 
})->get(); 
+0

看有三個表有兩個型號,爲用戶一個模型,另一個用於項目和心不是爲project_user表的任何模式。當我爲兩個用戶定義一個項目時,我需要向那兩個用戶顯示該項目而不是其他用戶。並且此規則位於project_user表上。如何在nt有任何型號時選擇它?和這三個表是關係 –

+0

檢查我的更新。您可以獲取用戶並查看他們的所有項目。或者獲得一個項目,並查看所有有權訪問的用戶。 – EddyTheDove

+0

對不起,我檢查你的更新,但有一個問題:你知道我需要讓項目具有特定的user_id在一個project_user Table.Now我有USER_ID但在查詢我應該如何使用它? –

0

據我瞭解你的問題,你想查詢Project根據user_id。這是你如何做到的。

Project::with('users')->whereHas('users', function ($query) use ($user_id_array) { 
     $query->whereIn('id',$user_id_array); 
    })->get(); 

這會給你一個項目,其user_id$user_id_array。讓我知道你是否需要任何進一步的幫助。

+0

我在JSON發送用戶ID:比如我有項目的用戶ID 2.now錯誤是未定義的變量:user_id_array? –

+0

我發送用戶ID JSON:比如我有項目的用戶ID 2。現在錯誤是缺少參數2的照明\數據庫\查詢\建設者:: whereIn(),調用... –

0

我解決問題的方法:

//save user_id 
$user_id = $request->id; 
//select in project_user where user_id = $user_id 
$project_user = DB::table('project_user')->where('user_id', '=', $user_id)->get(); 
//create an empty array 
$p_id = array(); 
//fill empty array with project_id 
foreach($project_user as $pro) { 
$p_id[] = $pro->project_id; 
} 
//select code and id in project table where id = one of that [$p_id] array 
$data = Project::select('code','id')->whereIn('id', $p_id)->get(); 
//return your data in json 
return response()->json($data);