2016-09-29 16 views
0

私は雄弁に1対1の関係で欠場何かがあります:私はPHPの職人のいじくりを実行する場合1対1雄弁関係の機能

class MeetingTest extends Model 
{ 
    protected $table = 'meeting_tests'; 

    public function meeting() { 
     return $this->belongsTo('App\Meeting','meeting_id','id'); 
    } 

    public function observation() { 
     return $this->hasOne('App\Observation','meeting_test_id','id'); 
    } 

    public function activity() { 
     return $this->hasOne('App\TestActivity','activity_id','id'); 
    } 
} 

観察クラスは

class Observation extends Model 
{ 
    protected $table = 'observations'; 

    public function meetingTest() { 
     return $this->belongsTo('App\MeetingTest','meeting_test_id','id'); 
    } 
} 

ですが、そして

$mtn = App\MeetingTest::create(); 
$mtn->save(); 

$ob = App\Observation::create(); 
$ob->save; 

$mtn->observation()->save($ob); 

この時点では、Observationレコード内で、meeting_test_idが正しいIDで満たされていることがわかります。 meetingTestが、私がしようとした場合:

$ mtn->観測

をそれは私にはnullを与えます。データベースには、観察IDフィールドには観察IDがありません。

これは、移行です:

Schema::create('meeting_tests', function (Blueprint $table) { 
      $table->increments('id'); 
      $table->integer('meeting_id')->unsigned(); 
      $table->integer('observation_id')->unsigned()->nullable(); 
      $table->integer('activity_id')->unsigned()->nullable(); 
      $table->timestamps(); 
     }); 

私が間違っているのか理解していません。

答えて

0

私はobservation_idは、このテーブル内のレコードを作るテーブル、あなたのmeeting_testsでをACTIVITY_ID見ることができます所有一対一/一対多の関係の側。したがってMeetingTestで関係ではなく、ます$ this-> hasOneの

ます$ this-> belongsToのを返す必要があり、 活動両方の観測