2016-07-31 11 views
0

Ich möchte Beziehungen zwischen drei Tabellen in Laravel erstellen. Zur Zeit habe ich drei ModelleKann keine Beziehung in Laravel Pivot-Tabellen

Klassenzimmer,

public function subjects(){ 
return $this->belongstoMany('Subject','subject_section_classroom'); 
} 

Abschnitt,
Betreff

Meine Tabellen

classrooms(id, name) 
sections(id, name) 
subjects(id, name) 
subject_section_classroom(id, classroom_id, section_id, subject_id) 

In meinem cla sind shroomsController Ich habe

public function assignsubjects($class_id, $section_id){ 
     $classroom = Classroom::find($class_id); 
     $section = Section::find($section_id); 
     $subjects = Subject::lists('name','id'); 
     $selected_subjects = $classroom->subjects()->where('section_id', '=', 1); 
     $subjects = Subject::lists('name','id'); 
     return view('assignedit', compact('classroom','section','subjects', 'selected_subjects')); 
} 

Aber ich kann die selected_subjects von oben Relation nicht erhalten. Und als ich versuchte, die SQL der obigen Abfrage zu erhalten (mit -> toSQL()), erhalte ich

`"select * from `myschool_subjects` inner join `myschool_subject_section_classroom` on `myschool_subjects`.`id` = `myschool_subject_section_classroom`.`subject_id` where `myschool_subject_section_classroom`.`classroom_id` = ? and `section_id` = ?"` 

Ich verstehe nicht, was ich falsch hier tue. Bitte Hilfe.

+0

weiß ich Laravel 4 nicht triple Tisch schwenkt unterstützt hat, also zum Beispiel Dieses Paket (https://github.com/jarektkaczyk/Elount-triple-pivot) von @jarektkaczyk wurde erstellt. Ich bin mir nicht sicher, ob etwas Ähnliches für Laravel 5 existiert. –

+0

Ich denke, dass deine Tabellenstruktur ein bisschen falsch ist. Können Sie mir einige Beispiele von Abschnitten und Themen aus Ihren Tabellen geben, damit ich Ihre Logik besser verstehe? – Phargelm

+0

Eigentlich möchte ich mit seinem Abschnitt alle Fächer eines Klassenzimmers ausgeben. einfach ich wollte die Klassenzimmer Themen aus Pivot-Tabelle, wo Abschnitt wie definiert ist;) –

Antwort

0

Ich denke, Ihr Problem kommt von php $selected_subjects = $classroom->subjects()->where('section_id', '=', 1);

Ändern Sie es an: php $selected_subjects = $classroom->subjects()->where('section_id', '=', 1)->get();