jjzjj

php - 学说 2 DQL : Cannot reuse named parameter?

我发现我不能像下面那样做,注意':user'被使用了两次$query=$em->createQuery('selectpfromApplication\Models\ProjectpWHEREp.owner=:userOR:userMEMBEROFp.collaborators');$query->setParameter('user',$user);我得到错误“array_combine():两个参数应该有相同数量的元素”我可以通过做下面的事情来解决这个问题$query=$em->createQuery('selectpfromApplication\Models\ProjectpW

php - 有没有标准的方法来缓存学说对象?

假设我有许多属性很少改变的对象。我不希望数据库一直被命中以获取这些对象的数据。我能做什么? 最佳答案 Doctrine2提供query和resultcaching.缓存依赖于第三方缓存解决方案,如APC、Memcache和Xcache。Doctrine提供了将这些集成到您的应用程序中的驱动程序。 关于php-有没有标准的方法来缓存学说对象?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questi

php - 不允许学说 2.0 Orx

代码$qb->andWhere($qb->expr()->orx($qb->expr()->andx("p.value_a>=".$values[0],"p.value_aexpr()->orx($qb->expr()->andx("p.venture_min_value_a>=".$values[0],"p.venture_min_value_aexpr()->andx("p.venture_max_value_a>=".$values[0],"p.venture_max_value_a错误信息:Expressionoftype'Doctrine\ORM\Query\Expr\Orx

php - 无法使用学说将数据刷新到子表中

以下是我的代码片段,我想做的是将父表的ID插入子表,同时将数据插入子表。以下是我的代码片段publicfunctionaddAction(){$ViewModel=newViewModel();$form=newTestForm();$form->get('submit')->setValue('Add');$request=$this->getRequest();if($request->isPost()){$TestFilter=newTestFilter();$test=$this->getServiceLocator()->get('Test');$form->setInput

php - 学说 2 : Can I get a Reference from a Repository instead of from the Entity Manager?

我知道我可以从实体管理器获得引用。但是,我不希望我的服务依赖于实体管理器。相反,我想注入(inject)一个Repository类,然后以某种方式从该Repository类获取Reference。这可能吗?我不想要这个:em=$em;}publicfunctiondoSomething($someId){$reference=$this->em->getReference('My\Entity',$someId);}}我想要这样的东西:repo=$repo;}publicfunctiondoSomething($someId){//howtoretrieveareference???$

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

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

php - 学说 2 延迟加载失败

我有两个实体,用户和客户端,一个客户端可以有很多用户。通常我想要一个用户实体并延迟加载客户端,但由于某些原因,当我尝试访问其属性时,客户端代理不会自行加载。如果我像这样转储数据\Doctrine\Common\Utils\Debug::log($user->client);它将输出客户端代理及其客户端ID。如果我将获取策略更改为“EAGER”,我将获得完整的客户端实体,但在访问用户时我并不总是需要客户端实体,因此我宁愿尽可能使用LAZY加载。编辑当我稍后这样做时:$user->client->name即使我的代理获得了客户端ID,我也会返回null。这是我的两个关系(在注释中)://u

zend 3 +学说2创建表?

我一直想知道Google上的文章试图“找到一种方式”使用学说创建表。我需要创建“临时表”,因为我正在进行的项目将具有很多“临时统计信息”,而且我不需要所有信息,只是一个“总计”。无论如何,mysql“临时”表仅是“解决方案”。但是,我找不到一条信息,它可以向您展示如何使用学说创建表。我知道学说需要创建表格和实体,但是必须有一种在“即时”创建表的方法,或者必须一种运行原始查询的方法。这是我尝试过的一件代码,当然失败了:$schema=new\Doctrine\DBAL\Schema\Schema();//if(!$schema->tablesExist('post'))//{$table=new

学说交易 - 计数待处理请求的数量

有办法找出交易中未决请求的数量在启动提交行动之前?我只想在得到足够数量的查询(在我的特定情况下都不能一核计数...)才能启动我的提交...)看答案好吧,我在UOF中找到了这一点http://www.doctrine-project.org/api/orm/2.3/source-class-doctrine.orm.unitofwork.html#3134因此,此方法将完成工作count($em->getUnitOfWork()->getScheduledEntityInsertions())

php - ZF + 学说 2 : Heavy model classes or Lightweight model + Service layer?

我正在集成ZendFramework和Doctrine2,我正在探索服务层。现在我明白(我错了吗?)我有两种可能的架构:模型,其中类包含领域逻辑,即属性+getters/setters+复杂方法一个轻量级模型,其中类包含属性+getter/setter和一个服务层,包含领域逻辑,并修改模型类各自的优缺点是什么?在我看来,通过将领域逻辑置于模型外部来失去OOP似乎很奇怪,所以我不明白为什么要使用服务层。 最佳答案 是什么让您认为您的服务层外部在您的模型中?它不是。事实上,它是您模型的核心部分,还有实体、存储库等。如果您使用的是Doct