私はMySQLで3表: 1ユーザ table of users 2-プロジェクト table of project 3- project_userlaravel関係の問題
IDとPROJECT_IDとUSER_IDは関係
ために存在します2つのモデルがあります:ユーザとプロジェクト これらのテーブルの関係はbelongsToMany プロジェクトが2人のために1つのプロジェクトを定義する可能性があります NOWどのように各人のプロジェクトを表示できますか?
私はMySQLで3表: 1ユーザ table of users 2-プロジェクト table of project 3- project_userlaravel関係の問題
2つのモデルがあります:ユーザとプロジェクト これらのテーブルの関係はbelongsToMany プロジェクトが2人のために1つのプロジェクトを定義する可能性があります NOWどのように各人のプロジェクトを表示できますか?
は、あなたが適切にあなたの関係を定義したと仮定すると、
$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_idを
によって拘束し、ユーザー$user = User::with('projects')->where('id', $user_id)->first();
やプロジェクトを通じてを取得するためにしようとプロジェクトを撮る
アップデート
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? –
JSonでユーザーIDを送信します。たとえば、ユーザーID 2のプロジェクトを作成する必要があります。今エラーはIlluminate \ Database \ Query \ Builder :: whereIn()の引数2がありません。 –
私はそれを解決する方法:プロジェクトのための2つのモデル、ユーザのための一つのモデルと他との3つのテーブルがあるとproject_userテーブルのいずれかのモードがイマイチ
//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);
表情。私が2人のユーザーのためのプロジェクトを定義するとき、私はその2人のユーザーだけにそのプロジェクトを示す必要があります。このルールはproject_userテーブルにあります。どんなモデルがあっても、どうすれば選べますか?この3つのテーブルはリレーショナル –
です。更新を確認してください。ユーザーを獲得して、すべてのプロジェクトを見ることができます。または、プロジェクトを取得し、そのプロジェクトにアクセスできるすべてのユーザーを表示します。 – EddyTheDove
私はあなたのアップデートをチェックしますが問題があります:あなたはproject_userテーブル内の特定のuser_idを持つプロジェクトを取得する必要があることを知っています。 –