Doctrine and composite unique keys

Answer the question: use Doctrine\ORM\Mapping\UniqueConstraint; /** * Common\Model\Entity\VideoSettings * * @Table(name=”video_settings”, * uniqueConstraints={ * @UniqueConstraint(name=”video_unique”, * columns={“video_dimension”, “video_bitrate”}) * } * ) * @Entity */ See @UniqueConstraint

How to get a one-dimensional scalar array as a doctrine dql query result?

PHP < 5.5 You can use array_map, and since you only have on item per array, you can elegantly use ‘current’ as callback, instead of writing a closure. $result = $em->createQuery(“SELECT a.id FROM Auction a”)->getScalarResult(); $ids = array_map(‘current’, $result); See Petr Sobotka’s answer below for additional info regarding memory usage. PHP >= 5.5 As jcbwlkr’s … Read more

How to sort findAll Doctrine’s method?

As @Lighthart as shown, yes it’s possible, although it adds significant fat to the controller and isn’t DRY. You should really define your own query in the entity repository, it’s simple and best practice. use Doctrine\ORM\EntityRepository; class UserRepository extends EntityRepository { public function findAll() { return $this->findBy(array(), array(‘username’ => ‘ASC’)); } } Then you must … Read more

Count Rows in Doctrine QueryBuilder

Something like: $qb = $entityManager->createQueryBuilder(); $qb->select(‘count(account.id)’); $qb->from(‘ZaysoCoreBundle:Account’,’account’); $count = $qb->getQuery()->getSingleScalarResult(); Some folks feel that expressions are somehow better than just using straight DQL. One even went so far as to edit a four year old answer. I rolled his edit back. Go figure.

Doctrine2: Best way to handle many-to-many with extra columns in reference table

I’ve opened a similar question in the Doctrine user mailing list and got a really simple answer; consider the many to many relation as an entity itself, and then you realize you have 3 objects, linked between them with a one-to-many and many-to-one relation. http://groups.google.com/group/doctrine-user/browse_thread/thread/d1d87c96052e76f7/436b896e83c10868#436b896e83c10868 Once a relation has data, it’s no more a relation … Read more

Default value in Doctrine

<?php /** * @Entity */ class myEntity { /** * @var string * * @ORM\Column(name=”myColumn”, type=”integer”, options={“default” : 0}) */ private $myColumn; … } Note that this uses SQL DEFAULT, which is not supported for some fields like BLOB and TEXT.