2016-03-25 13 views
1

私はちょうどlaravelでプロジェクトを開始しています。これは私にとって新しい環境です。私はPHPやモデル関係に精通しています。しかし、ララベルの構造は少し複雑です。 問題は私が質問とコーステーブルを持っているので、1つの質問には1つ以上のコースがあるので、コースIDと質問IDを保持するテーブルをもう1つ作成しました。laravelにhasmany関係で結果を見つける

質問モデル

namespace App\Models; 
use Illuminate\Database\Eloquent\Model; 

class Question extends Model{ 

    protected $primaryKey = "id"; 

    public function courses(){ 
     return $this->hasMany('App\Models\CourseQuestion'); 
    } 
} 

コースモデル

namespace App\Models; 
use Illuminate\Database\Eloquent\Model; 

class Course extends Model { 
    protected $primaryKey = "id"; 

    public function questions(){ 
     return $this->hasOne('App\Models\CourseQuestion'); 
    } 
} 

そして最後courseQuestionモデル

namespace App\Models; 
use Illuminate\Database\Eloquent\Model; 

class CourseQuestion extends Model { 
    protected $primaryKey = "id"; 

    public function questions(){ 
     return $this->hasOne('App\Models\Question'); 
    } 

    public function courses(){ 
     return $this->hasMany('App\Models\Course'); 
    } 
} 

と私は結果を取得し、私のコントローラ -

class IndexController extends BaseController { 

    public function index(){ 
     $user = Question::with('user','courses','branches')->find(100); 
     echo "<pre>"; 
     print_r($user); die; 
    } 
} 

コースはIDと3番目のテーブルに格納されている質問だけを返しますが、私はコース名をそれぞれのIDにします。助けてください ありがとうございます。

答えて

0
namespace App\Models; 

use Illuminate\Database\Eloquent\Model; 

class Question extends Model 
{ 

    protected $primaryKey = "id"; 

    public function courses() 
    { 
     return $this->hasMany('App\Models\CourseQuestion', 'course_question_id', 'id') 
     ->select('id', 'name'); 
    } 
} 
+0

>賢明な変更と同様に、すべての機能... > hasManyの/ hasOneの/ belongsToの > 1 =>モデルパス > 2 => local_foreignkey名 > 3 =>マスターテーブル の主キー>とfinaly使用 >選択せずにデータ全体を取得する必要がある場合は、いくつかの追加フィールドを選択します。 –

+0

この回答はあなたに満足しています..? –

関連する問題