草庐IT

doctrine

全部标签

php - Doctrine 的实体管理器崩溃并停止运行

因此,当我在我的ZF/Doctrine应用程序上运行测试时,一些测试碰巧破坏了Doctrine实体管理器,并且由于EM被关闭,所有顺序测试都失败了。我在tests/bootstrap.php中设置了EM:$application=newZend_Application(APPLICATION_ENV,APPLICATION_PATH.'/configs/application.ini');$application->bootstrap();(...)$bootstrap=$application->getBootstrap();$em=$bootstrap->getResource('

php - Doctrine 2 多级 OneToOne 级联

我有三个Doctrine实体:Device,它与Device\Status具有一对一关系,而Device\Status又与Device\Status\Battery具有一对一关系。我在相关实体之间设置了{cascade="persist"},从我读过的内容来看,这应该是Doctrine自动持久化每个实体所需的全部内容,而无需我自己在代码。这是我遇到的问题:$device=new\Entities\Device();$device->setId(100);$status=$device->getStatus();$status->setIpAddress('192.168.0.1');$

php - 从 doctrine 中的表中检索所有行

我有一个包含100000多行的表,我想在doctrine中选择所有行并对每一行执行一些操作,在symfony2中我尝试使用此查询来执行此查询:$query=$this->getDefaultEntityManager()->getRepository('AppBundle:Contractor')->createQueryBuilder('c')->getQuery()->iterate();foreach($queryas$contractor){//doingsomething}但后来我得到内存泄漏,因为我认为它将所有数据写入内存。我在ADOdb方面有更多经验,在我这样做的时候在那

php - 如何在 Symfony 和 Doctrine 中使用存储过程

我在尝试使用Symfony1.4和Doctrine1.2调用MySQL存储过程时遇到问题。我想要做的是:在表单中输入所有数据后,在模块/新建中,我想将其中一个值插入另一个表中。我不知道这是否可以在不使用存储过程的情况下通过Doctrine完成。感谢您的帮助。 最佳答案 您可以使用触发器,但我不确定它们在MySQL中有多先进。触发器不会涉及Doctrine、symfony或PHP中的任何编码。只是存储过程。你可以用Doctrine的recordlisteners达到非常相似的效果或recordhooks.

php - 对于 Doctrine,使用 DQL 而不是 SQL 有什么好处?

在使用Doctrine类时需要自定义查询时,有人可以为我提供一些明确的(事实支持的)理由来使用/学习DQL与SQL吗?我发现如果我不能使用ORM的内置关系功能来实现某些东西,我通常会在扩展的Doctrine或DoctrineTable类中编写一个自定义方法。在这种方法中,直接用SQL编写所需的代码(使用PDO和适当的准备语句/注入(inject)保护等)。DQL似乎是一种额外的学习/调试/维护语言,但似乎没有提供足够令人信服的理由在大多数常见情况下使用。DQL似乎并不比SQL复杂多少才能保证使用——事实上,我怀疑您是否可以在没有扎实的SQL理解的情况下有效地使用DQL。大多数核心SQL

php - 组合 IS NULL 和 :value in Doctrine 2 DQL

由于其他(旧)问题没有得到正确答案,我会再试一次:我经常遇到这样一种情况,我想查询具有特定值的实体:$query=$em->createQuery('SELECTeFROMEntityeWHEREe.parent=:parent');$query->setParameter('parent',$parent);通常,这个值可以为NULL,但是WHEREe.parent=NULL不会产生任何结果,迫使我像这样破解:if($parent===null){$query=$em->createQuery('SELECTeFROMEntityeWHEREe.parentISNULL');}els

php - Symfony 2 + Doctrine 2 + 继承

我正在使用Symfony2框架中内置的Doctrine2寻找解决以下数据库继承问题的解决方案。这就是我想要做的...我想创建两个表(UredniHodiny、KonzultacniHodiny),它们的接口(interface)与抽象类Hodiny相同。这就是我正在尝试的方式现在,当我运行phpapp/consoledoctrine:generate:entitiesCvutPWTImportBundle时,Symfony从类Hodiny生成所有变量(更准确地说是列)作为两个子类的私有(private)变量。现在,当我尝试使用app/consoledoctrine:schema:upd

php - 是否可以直接从数据库中使用 Doctrine 2 生成模型类?

我正在将我的Zend应用程序从Doctrine1.1.4升级到Doctrine2.0.6。我已经安装了Doctrine2命令行工具。在Doctrine1.1.4中,我直接从数据库生成了模型类(使用Doctrine::generateModelsFromDb()),这在Doctrine2中是否可行,或者我是否必须通过“映射”过程,即通过提供表格的Docblock注释、XML或YAML结构。我问这个的原因是因为Doctrine2中有一个“setAutoGenerateProxyClass”选项,我的印象是这意味着它将从头开始生成代理类。感谢您的帮助。 最佳答案

php - Symfony2 - Doctrine 实体子目录

基本上,我有一个代码分支连接到三个不同的实体管理器(以及随后的三个不同的MySQL数据库)。不幸的是,其中两个数据库的表名称相同,所以我不能将所有实体都放在同一目录中,对于结构,我想无论如何都要避免这种情况。所以,我的问题是......我将如何设置它以便我可以拥有一个实体包,在Entity\和Resources\config\doctrine\下有子目录例如Acme\EntityBundle\Entity\DB1\Test.phpAcme\EntityBundle\Entity\DB1\Acme.phpAcme\EntityBundle\Entity\DB2\Test.phpAcme\

php - Zend2 + Doctrine2 认证

我想使用Doctrine2和ZF2进行身份验证。为了获得帮助,我使用了Zend2+doctrine2AuthAdapter,但每次我调用$authService->authenticate($adapter);时,我都会收到一个错误,指出类“”不存在。我的module.config.php中的配置似乎不会被使用。显示如下:'authenticationadapter'=>array('orm_default'=>array('objectManager'=>'doctrine.entitymanager.orm_default','identityClass'=>'Profile\En