草庐IT

doctrine

全部标签

php - 从表名中获取实体类名

我想做从实体获取表名的相反操作:我想从表名中获取实体名称,即映射到该表的实体名称。db列也是如此:如何获取映射到它的实体的字段名称? 最佳答案 这是我能够做的,虽然它不是最佳的,因为它遍历了所有注册的实体类名称:/***@param\Doctrine\ORM\EntityManager$emEntitymanager*@paramstring$tableTablename*@returnstringEntityclassname,nullifnotfound*/protectedfunctiongetClassNameFromTab

php - symfony2 Doctrine expr 子查询 : Error: Invalid parameter number

尝试获取用户喜欢的状态。publicfunctiongetLikedStatuses(User$user){$qb=$this->_em->createQueryBuilder();$qb->select('s.id')->from('WallBundle:Likes','l')->innerJoin('l.status','s')->where('l.user=:user')->setParameter('user',$user)->orderBy('s.id','DESC');$qb2=$this->_em->createQueryBuilder()->select('st')->

php - symfony 中的匿名用户对象

我正在使用Symfony提供的基本用户登录/注销系统,只要人们登录它就可以正常工作。在这种情况下,$user对象总是根据需要提供。问题是当注销(或尚未登录)时没有用户对象。是否有可能(在这种情况下)为默认用户对象提供我自己的默认值?感谢您的建议 最佳答案 因为@Chopchop上面提到的解决方案(无论如何感谢你的努力)在这里不起作用我写了一个小的解决方法。我创建了一个名为myController的新类,它扩展了Controller。我重写的唯一函数是getUser()函数。我是这样实现的:publicfunctiongetUser(

php - 使用自定义 Doctrine 2 hydrator 进行依赖注入(inject)

我正在Symfony2项目中的Doctrine2中设置自定义水化器,但要使其执行所需操作,它需要另一项服务。documentationforcustomhydrators只展示了如何提供一个hydrator类,所以没有办法注入(inject)依赖。例如:$em->getConfiguration()->addCustomHydrationMode('CustomHydrator','MyProject\Hydrators\CustomHydrator');我怀疑Doctrine正在初始化水化器本身,因此任何依赖项都需要首先通过其他一些Doctrine类传递。有没有办法提供自定义的“水化

php - 在 Doctrine 映射中为表设置 PostgreSQL 模式很热吗?

我有两个Symfony应用程序映射到同一个PgSQL数据库。这两个应用程序都使用FOSUserBundle,所以我试图处理不同模式中的用户。在Google上阅读和做一些研究,我按如下方式构建我的实体:/***@ORM\Entity*@ORM\Table(name="internal_users",schema="internal")*@Gedmo\SoftDeleteable(fieldName="deletedAt",timeAware=false)*/classInternalUserextendsBaseUser{...}然后我在Symofny2shell中尝试了以下操作:Sym

php - Bisna Doctrine 2.1 和 2.2 从未导入注释 "@Table"

我习惯将zendmvc与doctrine2.1和2.2一起使用,并与bisna驱动程序绑定(bind)在一起。对于新项目,我使用注释驱动程序只是为了方便(我没有)。我是如何从数据库中生成我的实体并尝试加载它们的,但它们一直在生成错误:[SemanticalError]Theannotation"@Table"inclassMyWheels\Entity\Bmulogwasneverimported.我尝试为它们添加ORM\前缀,但这并没有解决问题。我的配置文件读取的:[production]phpSettings.display_startup_errors=0phpSettings.

php - Doctrine 2.2 + Zend Framework 分页速度优化

我在使用HYDRATE_OBJECT时遇到了Doctrine2性能问题。当我从HYDRATE_ARRAY切换到HYDRATE_OBJECT时,它花费了将近10倍的时间!我用过doctrine2andzendpaginator作为引用:$query=$em->createQuery($dql)->setHydrationMode(\Doctrine\ORM\AbstractQuery::HYDRATE_ARRAY)->setParameter('x',1);//Pagination$paginator=newDoctrine\ORM\Tools\Pagination\Paginator(

php - Doctrine Repository getEntityManager() 确实返回空

我有一个正在使用Symfony2编码的应用程序。我创建了一个Account实体并使用注解创建了一个名为AccountRepository的存储库在AccountRepository对象内我创建了一个函数来运行一些业务逻辑,该业务逻辑发送给外部供应商并在他们的站点创建一个用户,然后返回信息给我们,这样我就可以将他们的用户与我们的帐户实体相关联。创建该用户的一部分包括发送信用卡token。然后他们返回一些我想存储并与我们的帐户关联的有限信用卡数据,因此在创建对象并插入适当的数据后我有一个实体AccountCard,我无法从存储库请求实体管理器并坚持AccountCard做$em变量上的pr

php - Symfony2 - 创建一个 Doctrine 过滤器来选择当前用户数据

我正在使用Symfony2构建一个Saas/Multitenant应用程序。我创建了一个Doctrine事件订阅者来添加和更新一行的所有者、创建它的用户、修改它的用户、时间戳等.现在我需要实现某种过滤器,这样当用户登录时,他只能看到来自他公司的数据。我的第一个虽然是使用DoctrinepreLoad事件,但是这个事件不存在......据我所知,我必须使用Doctrine过滤器,不是吗?如果是这样,这个过滤器如何访问用户数据以读取公司ID?我必须使用依赖注入(inject)来注入(inject)它吗?是否有任何标准方法可以实现我的目标?更新我正在寻找的是创建某种Doctrine插件/Ho

php - 有学说回滚事件吗?即对有回滚的更改列表中的实体执行操作

在Symfony2.6上使用Doctrine是否有办法“检测”已持久化的实体上的事务回滚?我原来的问题:我创建了代表文件系统上文件的新实体。在$em->persist()上,这些实体通过Doctrine的PrePersist事件将文件从/temp目录移动到最终目的地。如果我正在处理的事务稍后在代码中回滚,则不会在数据库中创建任何行,但文件仍然存在,我必须在$em->rollback()之后手动删除它们>有了额外的代码,每次我这样做。所以我认为可能有一个事件我可以用来检测实体已从更改列表中“删除”或“回滚”,因此我可以删除该实体的相关文件。还有:PostPersist或PostFlush