2017-06-20 7 views
1

私はLaravelの簡単なレポートカードシステムを学習ツールとしてまとめています。現在私はPupilテーブル、Subjectテーブル、 id, pupil_id, subject_id,gradeカラムからなるピボットテーブルを持っています。このテーブルから必要な列を取得するにはどうすればよいですか?

私は、瞳孔と被験者のモデル関係を両方ともbelongsToManyに設定しました。瞳(1)のための無瞳孔情報、およびsubjectsでグレードの列の符号なし

Illuminate\Database\Eloquent\Collection {#729 
    all: [ 
     App\Subject {#726 
     id: 1, 
     subjectname: "English", 
     pivot: Illuminate\Database\Eloquent\Relations\Pivot {#731 
      pupil_id: 1, 
      subject_id: 1, 
     }, 
     }, 
     App\Subject {#728 
     id: 2, 
     subjectname: "Maths", 
     pivot: Illuminate\Database\Eloquent\Relations\Pivot {#730 
      pupil_id: 1, 
      subject_id: 2, 
     }, 
     }, 
    ], 
    } 

:私は実行する場合は、例えば、ティンカーで$pupil = App\Pupil::find(1)->subjectsは、私は次の出力を取得します。私は間違って何をしていますか?あなたは両方のPupilSubjectオブジェクトを取得する必要がある場合は

答えて

2

eager loading使用:

$pupil = App\Pupil::with('subjects')->find(1); 
+0

おかげで、働くことが、私は、ピボットテーブルの各エントリの 'grade'プロパティにアクセスすることができますか? – user4676723

+2

@ user4676723あなたの関係に 'withPivot()'メソッドを使用し、次に 'subjects'を反復して' - > pivot-> grade'でプロパティを取得する必要があります。 https://laravel.com/docs/5.4/eloquent-relationships#many-to-many –

+0

治療を受けました、ありがとう – user4676723

関連する問題