一对一雄辩的关系功能

时间:2016-09-29 15:39:04

标签: php laravel laravel-5 eloquent laravel-5.2

在雄辩的一对一关系中有一些我想念的东西:

2ms = T + 1
1ms = T

观察班是

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

如果我运行php artisan tinker和

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

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

在观察记录中的这一点上,我可以看到meeting_test_id填充了meetingTest的正确ID,但是如果我尝试:

$ mtn->观察

它给了我null;在数据库中,observation_id字段中没有观察ID;

这是迁移:

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

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

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

我不明白什么是不正确的。

1 个答案:

答案 0 :(得分:0)

我可以在 meeting_tests 表中看到 observation_id activity_id ,这会使此表中的记录为拥有一对一/一对多关系的一面。因此, MeetingTest 中的活动观察关系应返回 $ this-> belongsTo 而不是 $这 - > hasOne