在nelmio-alice中通过引用获取灯具项目

时间:2019-03-22 11:18:47

标签: symfony doctrine-orm doctrine 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)>

我想在我的phpunit功能测试中获取ID为Item的{​​{1}}。

我不确定自动递增ID是从1开始的。在4之后不是1。因此,这不正确

TRUNCATE

如何获得对$item4 = $this->em->getRepository(Item::class)->find(4); 的引用?

1 个答案:

答案 0 :(得分:1)

您可以直接从加载器中获取根据Fixtures文件生成的实体:

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

$objectSet应该包含您所有实体的别名,因此您可以获取特定项目并直接使用它,也可以使用存储库再次获取它

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