我有三個表中的MySQL: 1用戶 table of users 2項目 table of project 3 project_userlaravel關係問題多對多的情況下
有ID和PROJECT_ID和USER_ID的關係
有兩型:用戶和項目 這些表之間的關係是belongsToMany 當一個項目創建說不定項目定義了兩個人 現在我該怎麼讓每個人的項目?
我有三個表中的MySQL: 1用戶 table of users 2項目 table of project 3 project_userlaravel關係問題多對多的情況下
有兩型:用戶和項目 這些表之間的關係是belongsToMany 當一個項目創建說不定項目定義了兩個人 現在我該怎麼讓每個人的項目?
如果正確定義你的人際關係,你
$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();
據我瞭解你的問題,你想查詢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
。讓我知道你是否需要任何進一步的幫助。
我在JSON發送用戶ID:比如我有項目的用戶ID 2.now錯誤是未定義的變量:user_id_array? –
我發送用戶ID JSON:比如我有項目的用戶ID 2。現在錯誤是缺少參數2的照明\數據庫\查詢\建設者:: whereIn(),調用... –
我解決問題的方法:
//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);
看有三個表有兩個型號,爲用戶一個模型,另一個用於項目和心不是爲project_user表的任何模式。當我爲兩個用戶定義一個項目時,我需要向那兩個用戶顯示該項目而不是其他用戶。並且此規則位於project_user表上。如何在nt有任何型號時選擇它?和這三個表是關係 –
檢查我的更新。您可以獲取用戶並查看他們的所有項目。或者獲得一個項目,並查看所有有權訪問的用戶。 – EddyTheDove
對不起,我檢查你的更新,但有一個問題:你知道我需要讓項目具有特定的user_id在一個project_user Table.Now我有USER_ID但在查詢我應該如何使用它? –