在nelmio-alice中引用固定项目

Dmi*_*try 2 doctrine symfony doctrine-orm nelmio-alice alice-fixtures

我有一套固定装置(这是一个简化):

My\Entity\User:
  user_{1..10}:
    name: <firstName()>

My\Entity\Item:
  item_{1..10}:
    user: '@user_$current'
    data: <numberBetween(111111111, 999999999)>
Run Code Online (Sandbox Code Playgroud)

我想在我的 phpunit 功能测试中获取ItemID 。4

我不能确定自增ID是从1开始的。后面不是1 TRUNCATE。所以这是不正确的

$item4 = $this->em->getRepository(Item::class)->find(4);
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到参考item_4

dbr*_*ann 5

您可以直接从加载器获取从装置文件生成的实体:

$loader = new Nelmio\Alice\Loader\NativeLoader();
$objectSet = $loader->loadFile(__DIR__.'/fixtures.yml');
Run Code Online (Sandbox Code Playgroud)

$objectSet通过别名包含所有实体,以便您可以获取特定项目并直接使用它或使用存储库再次获取它

$fixtureItem4 = $objectSet['item_4'];
$persistedItem4 = $this->em->getRepository(Item::class)->find($fixtureItem4->getId());
Run Code Online (Sandbox Code Playgroud)