Zend Framework 2 - Doctrine 2 - 如何使用测试数据

4

我需要使用fixture向数据库中添加初始用户。

我查看了这个被称为非常好的模块:https://github.com/doctrine/data-fixtures

不幸的是,我不知道如何使用它。好吧,我用我的fixture构建了一个类。然后呢?我习惯于使用fixture的方式是在创建数据库(schema-tool:create)时数据会自动写入其中。

但是这个连接在哪里呢?似乎你必须在代码中的某个地方调用Loader?

如果有人能给我一个简短的教程,告诉我如何使用这些(或其他可行的)fixture模块,那就太好了!

谢谢!


嗯,你是否使用了正确的CLI工具?默认情况下是 vendor/bin/doctrine-module。如果你的Doctrine设置正确(即在应用程序中可以使用它),它应该可以正常工作。(我可能误解了你的问题。) - Daniel M
我正在使用这个,但我不明白如何使用它。我创建了一个fixture类...然后呢?示例中提到了一个Loader(),我什么时候需要使用它?我以为只需要把我的类放在某个地方并注册它就可以了,但是怎么做呢? - Ron
1个回答

11
在DoctrineModule中暂时还没有提供fixture。但是有一个专门用于加载Doctrine fixture的模块,名为DoctrineDataFixtureModule,可以在GitHub上找到。
通过composer安装它:hounddog/doctrine-data-fixture-module并在你的application.config.php中启用DoctrineDataFixtureModule。如果你已经配置了doctrine,只需将以下内容添加到FooModule的module.config.php中即可:
'data-fixture' => array(
    'location' => __DIR__ . '/../fixtures',
)

在该模块的目录下创建一个名为“fixtures”的子目录。将您的类放在那里并运行vendor/bin/doctrine-module data-fixture:import以导入fixture。fixture类的示例可能看起来像这样


谢谢,太棒了!我添加了一个示例类来解释当其他人尝试跟随你的示例时。 - Ron
好的,我的编辑被神秘地拒绝了...也许你可以自己添加吗?我认为这会让你的好帖子更好;) - Ron
编辑被拒绝了,因为它改变了现有帖子的太多内容(以及帖子的含义)。我更新了我的答案,加入了数据装置模块的Github存储库链接,这样就有一些编写装置类的示例。 - Jurian Sluiman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接