,我不能让我的头围绕这一点:测试一对多关系Laravel,雄辩不工作
$fragment = factory(Fragment::class)->create();
$this->assertCount(0, $fragment->values);
fragment->fetch(); // updates the 'values' by adding one Value object.
var_dump($fragment->id); // i.e. 6
var_dump(Fragment::first()->id); // 6
var_dump($fragment->values->count()); // 0
var_dump(Fragment::first()->values->count()); // 1
$this->assertCount(1, $fragment->values);
我用DatabaseTranscations,所以创建一个片段后,总有一个且只有一个。因此,$ fragment和Fragment :: first()是完全相同的实例。然而...价值关系是不同的。这怎么可能呢?
请注意,这只发生在测试过程中,当我通过我的控制器手动测试(并将值传递到刀片模板页面)时,它工作得很好。我很困惑:S。
任何想法?
非常好,这工作得很好。奇怪的是,我阅读文档并没有发现/理解上述行为。当然有一个提到急切的加载(https://laravel.com/docs/5.2/eloquent-relationships#lazy-eager-loading)。 –