Tag: doctrine2

是否有一种内置的方式来获取Doctrine 2实体中所有已更改/更新的字段

假设我检索一个实体$e并用setter修改它的状态: $e->setFoo('a'); $e->setBar('b'); 有没有可能检索已更改的字段数组? 在我的例子的情况下,我想检索foo => a, bar => b作为结果 PS:是的,我知道我可以修改所有访问器并手动实现此function,但我正在寻找一些方便的方法来做到这一点

教条:QueryBuilder vs createQuery?

在学说中,您可以通过两种方式创buildDQL: EntityManager :: createQuery : $query = $em->createQuery('SELECT u FROM MyProject\Model\User u WHERE u.id = ?1'); QueryBuilder : $qb->add('select', 'u') ->add('from', 'User u') ->add('where', 'u.id = ?1') ->add('orderBy', 'u.name ASC'); 我不知道有什么区别,应该使用哪一个?

如何sortingfindAll Doctrine的方法

我一直在阅读Doctrine的文档,但是我一直没能findsortingfindAll()结果的方法。 我正在使用symfony2 +原则,这是我在我的控制器中使用的声明: $this->getDoctrine()->getRepository('MyBundle:MyTable')->findAll(); 但我希望结果按照用户名升序排列。 我一直在试图通过这样一个parameter passing数组: findAll( array('username' => 'ASC') ); 但它不起作用(它也不抱怨)。 有没有办法做到这一点,而不build立一个DQL查询?

symfony2 doctrine2中的var_dump数据太多

我有大约40个实体和许多双向关系。 每当我使用var_dump($用户)或任何实体我的浏览器被加载了太多的数据和variables的数据,然后它只是坠毁。 我想要什么问题。 数据插入正常。 我可以在生产中引起问题吗?

如何使用WHERE IN与Doctrine 2

我有下面的代码给我的错误: Message: Invalid parameter number: number of bound variables does not match number of tokens 码: public function getCount($ids, $outcome) { if (!is_array($ids)) $ids = array($ids); $qb = $this->getEntityManager()->createQueryBuilder(); $qb->add('select', $qb->expr()->count('r.id')) ->add('from', '\My\Entity\Rating r'); if ($outcome === 'wins') $qb->add('where', $qb->expr()->in('r.winner', array('?1'))); if ($outcome === 'fails') $qb->add('where', $qb->expr()->in('r.loser', array('?1'))); $qb->setParameter(1, $ids); $query = $qb->getQuery(); //die('q = […]

用doctrine2删除级联

我试图做一个简单的例子,以了解如何从父表中删除一行,并自动删除使用Doctrine2在子表中匹配的行。 以下是我正在使用的两个实体: Child.php: <?php namespace Acme\CascadeBundle\Entity; use Doctrine\ORM\Mapping as ORM; /** * @ORM\Entity * @ORM\Table(name="child") */ class Child { /** * @ORM\Id * @ORM\Column(type="integer") * @ORM\GeneratedValue(strategy="AUTO") */ private $id; /** * @ORM\ManyToOne(targetEntity="Father", cascade={"remove"}) * * @ORM\JoinColumns({ * @ORM\JoinColumn(name="father_id", referencedColumnName="id") * }) * * @var father */ private $father; } Father.php <?php namespace Acme\CascadeBundle\Entity; use Doctrine\ORM\Mapping […]

Doctrine中的默认值

如何在Doctrine 2中设置默认值?

将SecurityContext注入到Symfony2中的侦听器prePersist或preUpdate中以获取createdBy或updatedBy中的用户导致循环引用错误

我设置了一个监听器类,我将在任何原理prePersist上设置ownerid列。 我的services.yml文件看起来像这样… services: my.listener: class: App\SharedBundle\Listener\EntityListener arguments: ["@security.context"] tags: – { name: doctrine.event_listener, event: prePersist } 而我的class级看起来像这样 use Doctrine\ORM\Event\LifecycleEventArgs; use Symfony\Component\Security\Core\SecurityContextInterface; class EntityListener { protected $securityContext; public function __construct(SecurityContextInterface $securityContext) { $this->securityContext = $securityContext; } /** * * @param LifecycleEventArgs $args */ public function prePersist(LifecycleEventArgs $args) { $entity = $args->getEntity(); $entityManager = $args->getEntityManager(); $entity->setCreatedby(); } […]

什么是教义2中的代理?

我刚刚读完了所有的Doctrine 2文档,开始了我自己的沙箱,我了解了大部分原理,但仍然有一个问题,我找不到任何完整的解释。 什么是Proxy类? 我应该什么时候使用它们在实体上? 据我所知,代理类添加一个层,让您添加一些其他function到您的实体,但为什么使用代理,而不是在实体类中实现方法本身?

在学说2中selectdate之间的条目

我会疯狂与这个最小的错误,我没有得到解决。 我想select两天之间的条目,下面的例子ilustrate我所有的失败: select1。 $qb->where('e.fecha > ' . $monday->format('Ym-d')); $qb->andWhere('e.fecha < ' . $sunday->format('Ym-d')); 结果(0项): SELECT r0_.id_reservacion AS id_reservacion0, r0_.fecha AS fecha1, r0_.cliente AS cliente2 FROM reservacion r0_ WHERE (r0_.fecha > 2012 – 07 – 16) AND (r0_.fecha < 2012 – 07 – 22) select2 $qb->add('where', 'e.fecha between 2012-01-01 and 2012-10-10'); 结果(0项): SELECT r0_.id_reservacion AS id_reservacion0, […]