2016-10-24 27 views
1

私はこれに新しいので、私と一緒に熊。雄弁なマルチテーブルのクエリと関係

私は4つのテーブル(ユーザー、スコア、スコアカード、コース)を持っており、これらのすべてのテーブルからビュー情報を取得する必要があります。ここで

は関係あり:

スコアモデル

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

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

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

コースモデル私のコントローラで

public function club(){ 

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

} 

public function scorecard(){ 

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

} 

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

スコアカードモデル

public function course(){ 

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

} 

public function club(){ 

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

私はスコアを取得しますリクエストのドロップダウンからIDを取得します。私は本質的に次の情報を得る必要があります:

  1. 私はスコアIDを持っているので、簡単なスコアレコード。
  2. scorecardテーブルからスコアカードレコードを取得するには、scorecard_idをスコア表から使用してください。
  3. スコアカードテーブルのcourse_idを使用してコーステーブルからコース情報を取得してください。

答えて

0

ドット.scorecard.courseとして読み込むと、スコアカードとコースの両方がロードされます。

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

、その後、あなたは、対応する属性にアクセスすることができます助けを

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

ありがとうございました! – Mudd

+0

幸せに助けてください:D ... –

0

$idドロップダウンからのスコアIDがある場合、その後

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

print_r($score); 

は得点記録を与えます。

print_r($score->scorecard); 

はスコアカードレコードを示します。

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

はコース記録を与える。

+0

おかげで、私はそれを感謝! – Mudd