草庐IT

Doctrine_Record

全部标签

php - Symfony 应用程序中的 Doctrine 实体和业务逻辑

欢迎任何想法/反馈:)我在如何上遇到了问题处理业务逻辑我的周围Doctrine2实体在大Symfony2应用程序.(抱歉帖子太长了)在阅读了许多博客、食谱和其他资源后,我发现:实体可能仅用于数据映射持久性(“贫血模型”),Controller必须尽可能纤薄,域模型必须与持久层解耦(实体不知道实体管理器)好的,我完全同意,但是:在哪里以及如何处理域模型上的复杂业务规则?一个简单的例子我们的域名模型:aGroupcanuseRolesaRolecanbeusedbydifferentGroupsaUsercanbelongtomanyGroupswithmanyRoles,在SQL持久层,

php - Symfony 应用程序中的 Doctrine 实体和业务逻辑

欢迎任何想法/反馈:)我在如何上遇到了问题处理业务逻辑我的周围Doctrine2实体在大Symfony2应用程序.(抱歉帖子太长了)在阅读了许多博客、食谱和其他资源后,我发现:实体可能仅用于数据映射持久性(“贫血模型”),Controller必须尽可能纤薄,域模型必须与持久层解耦(实体不知道实体管理器)好的,我完全同意,但是:在哪里以及如何处理域模型上的复杂业务规则?一个简单的例子我们的域名模型:aGroupcanuseRolesaRolecanbeusedbydifferentGroupsaUsercanbelongtomanyGroupswithmanyRoles,在SQL持久层,

php - Doctrine 2 与关联的继承映射

注意:如果我想要的是不可能的,“不可能”的答案将被接受在Doctrine2documentationaboutinheritancemapping,它说有两种方法:单表继承(STI)类表继承(CTI)两者都有警告:IfyouuseaSTI/CTIentityasamany-to-oneorone-to-oneentityyoushouldneveruseoneoftheclassesattheupperlevelsoftheinheritancehierachyas“targetEntity”,onlythosethathavenosubclasses.OtherwiseDoctrin

php - Doctrine 2 与关联的继承映射

注意:如果我想要的是不可能的,“不可能”的答案将被接受在Doctrine2documentationaboutinheritancemapping,它说有两种方法:单表继承(STI)类表继承(CTI)两者都有警告:IfyouuseaSTI/CTIentityasamany-to-oneorone-to-oneentityyoushouldneveruseoneoftheclassesattheupperlevelsoftheinheritancehierachyas“targetEntity”,onlythosethathavenosubclasses.OtherwiseDoctrin

php - Doctrine 和 LIKE 查询

我有Doctrine的实体:我需要这样查询:select*from`orders`where`OrderEmail`='some@mail.com'and`Product`LIKE'MyProducts%'我尝试处理不喜欢的查询:$em->getRepository("Orders")->findByEmailAndProduct($uname,$product);但它会出错。为什么?我可以在没有DQL的情况下执行此查询吗?我想让这个查询使用魔术方法findBy** 最佳答案 这对于神奇的find方法是不可能的。尝试使用queryb

php - Doctrine 和 LIKE 查询

我有Doctrine的实体:我需要这样查询:select*from`orders`where`OrderEmail`='some@mail.com'and`Product`LIKE'MyProducts%'我尝试处理不喜欢的查询:$em->getRepository("Orders")->findByEmailAndProduct($uname,$product);但它会出错。为什么?我可以在没有DQL的情况下执行此查询吗?我想让这个查询使用魔术方法findBy** 最佳答案 这对于神奇的find方法是不可能的。尝试使用queryb

php - Doctrine 2 : Update query with query builder

嗨我有以下查询,但它似乎不起作用。$q=$this->em->createQueryBuilder()->update('models\User','u')->set('u.username',$username)->set('u.email',$email)->where('u.id=?1')->setParameter(1,$editId)->getQuery();$p=$q->execute();这将返回以下错误消息:Fatalerror:Uncaughtexception'Doctrine\ORM\Query\QueryException'withmessage'[Semant

php - Doctrine 2 : Update query with query builder

嗨我有以下查询,但它似乎不起作用。$q=$this->em->createQueryBuilder()->update('models\User','u')->set('u.username',$username)->set('u.email',$email)->where('u.id=?1')->setParameter(1,$editId)->getQuery();$p=$q->execute();这将返回以下错误消息:Fatalerror:Uncaughtexception'Doctrine\ORM\Query\QueryException'withmessage'[Semant

php - 如何在 Doctrine 2 中将实体重新保存为另一行

假设我有实体$e。是否有任何通用方法将其存储为另一行,这将具有相同的实体数据但另一个主键?为什么我需要这个:我正在实现某种TemporalDatabase架构,而不是更新行,我只需要创建另一个。 最佳答案 尝试克隆并将以下方法添加到您的实体中publicfunction__clone(){$this->id=null;}您可能需要detach在持久化实体之前。我现在手头没有我的开发机器来测试这个。$f=clone$e;$em->detach($f);$em->persist($f);$em->flush();更新刚刚尝试使用一个简单

php - 如何在 Doctrine 2 中将实体重新保存为另一行

假设我有实体$e。是否有任何通用方法将其存储为另一行,这将具有相同的实体数据但另一个主键?为什么我需要这个:我正在实现某种TemporalDatabase架构,而不是更新行,我只需要创建另一个。 最佳答案 尝试克隆并将以下方法添加到您的实体中publicfunction__clone(){$this->id=null;}您可能需要detach在持久化实体之前。我现在手头没有我的开发机器来测试这个。$f=clone$e;$em->detach($f);$em->persist($f);$em->flush();更新刚刚尝试使用一个简单