2016-10-24 3 views
1

Ich bin neu dazu, also ertragen Sie mit mir.eloquent Multi-Tabelle Abfrage und Beziehungen

Ich habe 4 Tabellen (Benutzer, Partituren, Scorecards, Kurse) und ich muss Informationen aus allen diesen Tabellen in eine Ansicht bringen.

Hier sind die Beziehungen:

Noten Modell

public function user(){ 
    return $this->belongsTo('App\User'); 
} 

public function scorecard(){ 
    return $this->belongsTo('App\Scorecard'); 
} 

public function course() { 
    return $this->belongsTo('App\Course'); 
} 

Course Modell

public function club(){ 

    return $this->belongsTo('App\Club'); 

} 

public function scorecard(){ 

    return $this->hasMany('App\Scorecard'); 

} 

public function score() { 
    return $this->hasMany('App\Score'); 
} 

Scorecard Modell

public function course(){ 

    return $this->belongsTo('App\Course'); 

} 

public function club(){ 

    return $this->belongsTo('App\Club'); 
} 

In meinem Controller bekomme ich die Noten ID aus einem Dropdown in der Anfrage. Ich muss im Wesentlichen die folgende Info erhalten:

  1. die Kerben notieren, die einfach ist, da ich die Kerbe Identifikation habe.
  2. Verwenden Sie die scorecard_id aus der Scores-Tabelle, um den Scorecard-Datensatz aus der Scorecard-Tabelle
  3. die Kursinformationen aus der Tabelle Kurse mit der Kurs-ID, die in der Scorecards-Tabelle ist.

Antwort

0

Sie können die Relationen laden, indem Sie den Punkt . als scorecard.course verwenden und sowohl Scorecard als auch Kurs laden.

$score = Score::with('scorecard.course')->find($id); 

und dann können Sie entsprechende Attribute zugreifen, wie:

$score->scorecard; 
$score->scorecard->course; 
+0

Vielen Dank für die Hilfe !! – Mudd

+0

Glücklich zu helfen: D ... –

0

wenn $id die Noten-ID aus einem Drop-Down ist,

$score=Score::with('scorecard','scorecard.course')->where(['id'=$id])->first(); 

dann,

print_r($score); 

gibt den Rekord-Scores.

print_r($score->scorecard); 

gibt den Scorecard-Datensatz.

print_r($score->scorecard->course); 

gibt die Kurse aufnehmen.

+0

Danke für die Hilfe, ich schätze es! – Mudd

Verwandte Themen