,我不能讓我的頭圍繞這一點:測試一對多關係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)。 –