草庐IT

Doctrine_RawSql

全部标签

php - EAV 表上的 Doctrine ORM

我正计划创建我的应用程序并为模型使用ORM,但事实是,数据库的一部分使用了实体属性值表。我非常喜欢DoctrineORM,但我不知道是否有可能创建看起来像任何普通Doctrine实体的类,而实际上连接到的表是EAV样式。是否可以在这方面使用Doctrine,如果可以,如何使用? 最佳答案 绝对有可能:有这样的关系:对象(一对多)->AttributeValue->ManytoOne->AttributeType 关于php-EAV表上的DoctrineORM,我们在StackOverfl

php - 如何在 Doctrine 2 中管理单表继承?

我有评论和文章,都可以投票。所以,基本上我有三个实体,Article、Comment和Vote。在阅读SingleTableInheritanceinDoctrine2后引用手册,看来这正是我所需要的,因为我的Vote对Article或Comment保持不变。在ORMView中,这是我如何查看我的Vote表:编号|资源编号|资源类型|重量|我猜resource_type应该是“鉴别器”列,但我真的不明白如何在我的实体中实现它。我想做的是避免必须为我的每个实体投票表,因为除了“resource_type”之外,两者的投票实体保持相同,所以我试图在其中找到一种方法Doctrine2只能使用

php - Doctrine 2 坚持在 ManyToOne 关系中持久化已经管理的实体

我有一个包含部门的数据库表。我有另一个包含人的表。正如您所期望的那样,一个部门包含很多人,而一个人在一个部门中。当我想将一个新人持久保存到数据库中时,我创建了一个Person对象并尝试将其Department属性设置为一个由EntityManager管理的existingDepartment对象。但是,当我尝试保留我的新Person时,出现异常:Anewentitywasfoundthroughtherelationship'Entities\Person#department'thatwasnotconfiguredtocascadepersistoperationsforentit

php - 使用 symfony2 和 php 在生产环境中使用 doctrine2 迁移是否安全

我正在构建一个复杂的应用程序,但我想知道在生产中使用原则迁移是否安全。例如。该站点已使用1年,公司希望向用户表添加额外的属性。那么我是通过进入数据库还是通过学说迁移直接改变 最佳答案 这是迁移的预期用途之一(和好处)-快速准确地自动更改数据库。是,它们可以而且在大多数情况下应该用于更新生产中的数据库。编辑:TheSymfony2documentation也解释清楚了这是迁移的目的之一。Ofcourse,theendgoalofwritingmigrationsistobeabletousethemtoreliablyupdateyo

php - Symfony 2 - 试图从命名空间 "apcu_fetch"调用函数 "Doctrine\Common\Cache"

我在我的symfony项目中使用PHP7.0.8和doctrine缓存(带APCU)。当我从使用此缓存的Controller调用函数时,没问题,它工作正常!但是当我创建一个使用存储库的命令文件时,存储库使用doctrine缓存,当我在我的shell上运行这个命令时,我遇到了错误:[Symfony\Component\Debug\Exception\UndefinedFunctionException]Attemptedtocallfunction"apcu_fetch"fromnamespace"Doctrine\Common\Cache".我的配置:doctrine:dbal:dri

php - 为什么 var_dump 一个 Doctrine Objects 会杀死我的 Apache?

我有一个非常奇怪的问题,当我尝试var_dump(或print_r)一个Doctrine对象时,我的Apache响应一个空的空白页(200OKheader).我可以var_dump一个普通的php变量,例如:$dummy=array("a"=>1,"b"=>2);而且效果很好。但是我不能使用来自任何Doctrine类的任何对象(比如$connection->query()的结果,或者来self的带有Doctrine的对象模型的类的实例)。有人知道为什么会这样吗? 最佳答案 延迟加载代理总是包含Doctrine的EntityManag

php - Doctrine - 多个模型在另一个模型中引用相同的 id 字段

我有一个文件模型,以及多个(目前有3个)不同的其他模型(文章、工作、事件),它们都可以有文件,存储在文件模型中。问题是,当我通过CLI工具(./doctrinebuild-all-reload)生成表格时,我收到此错误消息:SQLSTATE[23000]:Integrityconstraintviolation:1452Cannotaddorupdateachildrow:aforeignkeyconstraintfails(`my_database/articles`,CONSTRAINT`articles_id_files_target_id`FOREIGNKEY(`id`)REF

php - 将可嵌入字段设置为父实体映射的主键 - Doctrine2

TLDR;Doctrine2:我需要知道是否可以将可嵌入对象中的字段从父实体(或MappedSuperclass')映射设为主键。我已经知道如何从Embeddable的映射中设置主键,但这并不理想(请参阅“长版”)。http://doctrine-orm.readthedocs.org/en/latest/tutorials/embeddables.html长版;我正在尝试使用Doctrine2Embeddables为我的实体创建标识值对象。这是我的问题...我在实体(MyEntity)中有两个不同的可嵌入对象(MyEntityId和OtherEntityId)。我希望MyEntity

php - ZF2 应用中的 Doctrine ORM 缓存

我在ZendFramework2项目中使用Doctrine2ORM,我想澄清一些关于缓存的细节。学说配置看起来像returnarray('doctrine'=>array('driver'=>array('application_entities'=>array('class'=>'Doctrine\ORM\Mapping\Driver\AnnotationDriver','cache'=>'doctrine_cache_entities',//1'paths'=>array(__DIR__.'/../src/Application/Entity')),'orm_default'=>a

php - 使用 Bisna/Doctrine2 处理关闭的 EntityManager

因此,在使用Doctrine2违反完整性约束后,EntityManager喜欢以一种无法继续使用所述EntityManager的方式关闭。普遍的想法似乎是您应该创建一个新的EntityManager,而不是被允许捕获这个简单的异常并以优雅的方式处理它(伙计们/讽刺的美妙设计)。但是,当使用带有封闭实体管理器的Bisna库/ZF1.12时会出现问题。Bisna库不提供在Container类中关闭后创建具有相同名称(即“默认”)的新EntityManager的公共(public)方法。我的问题是处理此问题的最佳方法是什么。在违反完整性约束后,必须有一种从容恢复的方法。