Stu*_*uck 32 fixtures symfony doctrine-orm
是否可以从Symfony2/Doctrine中的现有数据库生成灯具?我怎么能这样做?
例:
我已经定义了15个实体,我的symfony2应用程序正在运行.现在有些人可以浏览到该应用程序,并且使用它已经插入了大约5000行,直到现在.现在我希望插入的东西作为固定装置,但我不想手工完成.如何从数据库生成它们?
在Doctrine或Symfony2中没有直接的方式,但为它编写代码生成器(在sf2内部或外部)将是微不足道的.只需拉动每个属性并生成一行代码来设置每个属性,然后将其放入fixture装入方法中.例:
<?php
$i = 0;
$entities = $em->getRepository('MyApp:Entity')->findAll();
foreach($entities as $entity)
{
$code .= "$entity_{$i} = new MyApp\Entity();\n";
$code .= "$entity_{$i}->setMyProperty('" . addslashes($entity->getMyProperty()); . "'); \n");
$code .= "$manager->persist($entity_{$i}); \n $manager->flush();";
++$i;
}
// store code somewhere with file_put_contents
Run Code Online (Sandbox Code Playgroud)
Reu*_*ven -3
在doctrine_fixture 说明书中,您可以在最后一个示例中看到如何在实体中获取服务容器。
使用此服务容器,您可以检索学说服务,然后检索实体管理器。使用实体管理器,您将能够从数据库中获取所需的所有数据。
希望对你有帮助!
| 归档时间: |
|
| 查看次数: |
11855 次 |
| 最近记录: |