Akashさん:
laravel 6で、私は2つのモデルを持っています
class Teacher {
}
class Students {
}
私はテーブルを結合する第3のモデルを持っています
class TeacherStudent {
}
今どのように私はそれらの特定の学生が加入していないすべての教師を得ることができますか?
たとえば:
Teacher1、Teacher2、Teacher3、Teacher4はしている教師のテーブル
にあり、STUDENT1、Student2、Student3、Student4 学生テーブル
STUDENT1は、Teacher1を購読Teacher2
Student2はTeacher1を購読、Teacher4
Student3はTeacher2を購読しました
ここでは、としてlogedinとしてSTUDENT1私は解除教師を見たいと思ったときに、私が取得する必要Teacher3とTeacher4を
などlogedinとしてStudent4私は解除教師を見たいと思ったときに、私が取得する必要がありますすべての教師をようにし、
swadhwa:
私はあなたがあなたのモデル内のすべての関係を定義したと仮定しています
// in your controller
$user = auth()->user();
// where 'students' is a many-to-many relationship you have in you Teacher model
$teachers = Teacher::whereDoesntHave('students', function($query) use($user) {
return $query
->where('user_id', $user->id);
});
上記のクエリは、現在認証されたユーザに属していないすべての教師を取得します。
場合は、あなたのモデル内のすべての関係を定義していません。彼らは、次のようになります。
// Teacher model
public function students() {
// many to many relationship
return $this->belongsToMany('App\Student', 'subscriber'); // replace subscribers with your pivot table
}
学生モデル:
// Student model
public function teachers() {
// many to many relationship
return $this->belongsToMany('App\Teacher', 'subscriber'); // replace subscribers with your pivot table
}
PS:それのいずれかをテストしていない、彼らは仕事をしないなら、私に知らせて