public function em() { return parent::getEntityManager(); }
/** * Populate the EntityRepository $repo with $count entities. * * @see \Population\Populator::populate * * @access public * @param EntityRepository $repo * @param int $count * @param array $options * @param callable $callback Function which populates the data for each instance. It is passed a single argument, * the entity to be populated. If $callback returns false, the entity will not be persisted. * @param array $options (default: array()) * perFlush: Limit the number of insertions performed in a single flush (default: 100) * clearAfterFlush: Clear the EntityManager after each flush (default:true) * factory: Optionally, specify a factory callback for populated objects * constructorArgs: An array of args, passed directly to the document's constructor (default: null) * @return void */ public function populateEntity(EntityRepository $repo, $count, $callback, array $options = array()) { $em = $repo->getEntityManager(); if (isset($options['factory'])) { $factory = $options['factory']; } else { $reflClass = $repo->getClassMetadata()->reflClass; $factory = array($reflClass, 'newInstanceArgs'); } $this->populateObject($em, $factory, $count, $callback, $options); }
function addLast($entity, $persist = true) { if (!$entity instanceof $this->className) { throw new InvalidArgumentException('The item must be an instace of ' . $this->className); } $parentEntityId = $this->getParentIdentifierValue($entity); if (!array_key_exists($parentEntityId, $this->cachedMaxOrder)) { $this->cachedMaxOrder[$parentEntityId] = null; } if ($this->cachedMaxOrder[$parentEntityId] === null) { $qb = $this->getEntityManager()->createQueryBuilder()->select('MAX(o.' . $this->orderField . ')')->from($this->className, 'o'); if ($this->useParent()) { $qb = $this->addParentQueryBuilderCondition($qb, $parentEntityId); } $this->cachedMaxOrder[$parentEntityId] = $qb->getQuery()->getSingleScalarResult(); if ($this->cachedMaxOrder[$parentEntityId] == null) { $this->cachedMaxOrder[$parentEntityId] = 1; } } $this->cachedMaxOrder[$parentEntityId]++; $entity->_setPosition($this->cachedMaxOrder[$parentEntityId]); if ($persist) { parent::getEntityManager()->persist($entity); } }