2016-09-29 5 views
0

Существует что-то мне не хватает в красноречивого отношения один-к-одному:One-To-One красноречивый отношениях функции

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'); 
    } 
} 

Если я бегу PHP мастеровых подправлять и

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

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

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

В этот момент внутри записи наблюдения я вижу, что meeting_test_id заполнен правильным идентификатором meetingTest, но если я пытаюсь:

$ mtn-> наблюдение

это дает мне нуль; и в базе данных нет идентификатора наблюдения в поле наблюдения_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 и activity_id в вашем meeting_tests стола, который делает записи в этой таблице принадлежит стороны один-к-один/один-ко-многим. Таким образом, обе активность и наблюдения отношений в MeetingTest должны вернуть $ this-> belongsTo вместо $ this-> hasOne

Смежные вопросы