/**
  * @param \Doctrine\ORM\Query|\Doctrine\ORM\QueryBuilder $query
  * @param array $array
  * @param string $contiene
  * @return \Doctrine\ORM\Query|\Doctrine\ORM\QueryBuilder
  */
 public function consultaContiene($query, $array, $contiene)
 {
     if ($contiene != "") {
         $fields = array_keys($this->getClassMetadata()->fieldNames);
         $alias = $query->getRootAlias();
         $count = 0;
         foreach ($array as $field) {
             $fieldMapping = $this->getClassMetadata()->getFieldForColumn($field);
             $where = sprintf("UPPER(%s.%s) LIKE :condicion", $alias, $fieldMapping);
             if ($count == 0) {
                 $query->andWhere($where);
             } else {
                 $query->orWhere($where);
             }
             $count++;
         }
         $query->setParameter("condicion", "%" . strtoupper($contiene) . "%");
     }
     return $query;
 }
 /**
  * @covers Kunstmaan\AdminBundle\Helper\Security\Acl\AclHelper::apply
  * @covers Kunstmaan\AdminBundle\Helper\Security\Acl\AclHelper::cloneQuery
  */
 public function testApplyAnonymous()
 {
     /* @var $queryBuilder QueryBuilder */
     $queryBuilder = $this->getMockBuilder('Doctrine\\ORM\\QueryBuilder')->disableOriginalConstructor()->getMock();
     $query = new Query($this->em);
     $query->setParameter('paramName', 'paramValue', 'paramType');
     $queryBuilder->expects($this->any())->method('getQuery')->will($this->returnValue($query));
     $queryBuilder->expects($this->once())->method('getRootEntities')->will($this->returnValue(array('Kunstmaan\\NodeBundle\\Entity\\Node')));
     $queryBuilder->expects($this->once())->method('getRootAliases')->will($this->returnValue(array('n')));
     $roles = array();
     $this->token->expects($this->once())->method('getRoles')->will($this->returnValue($roles));
     $this->rh->expects($this->once())->method('getReachableRoles')->with($roles)->will($this->returnValue($roles));
     $this->token->expects($this->any())->method('getUser')->will($this->returnValue('anon.'));
     $permissionDef = new PermissionDefinition(array('view'), 'Kunstmaan\\NodeBundle\\Entity\\Node');
     /* @var $query Query */
     $query = $this->object->apply($queryBuilder, $permissionDef);
     $this->assertEquals(MaskBuilder::MASK_VIEW, $query->getHint('acl.mask'));
     $this->assertEquals($permissionDef->getEntity(), $query->getHint('acl.root.entity'));
     $this->assertEquals('rootTable', $query->getHint('acl.entityRootTableName'));
     $this->assertEquals('n', $query->getHint('acl.entityRootTableDqlAlias'));
     $aclQuery = $query->getHint('acl.extra.query');
     $this->assertContains('"IS_AUTHENTICATED_ANONYMOUSLY"', $aclQuery);
 }
Example #3
0
 /**
  * {@inheritdoc}
  */
 public function findCollectionBreadcrumbById($id)
 {
     try {
         $sql = sprintf('SELECT n, collectionMeta, defaultMeta
              FROM %s AS p,
                   %s AS n
                     LEFT JOIN n.meta AS collectionMeta
                     LEFT JOIN n.defaultMeta AS defaultMeta
              WHERE p.id = :id AND p.lft > n.lft AND p.rgt < n.rgt
              ORDER BY n.lft', $this->_entityName, $this->_entityName);
         $query = new Query($this->_em);
         $query->setDQL($sql);
         $query->setParameter('id', $id);
         return $query->getResult();
     } catch (NoResultException $ex) {
         return [];
     }
 }
 /**
  * Sets parameters for the query
  *
  * @param \Doctrine\ORM\Query $query      Query to be set parameters on
  * @param array               $parameters Variables
  *
  * @return \Doctrine\ORM\Query
  *
  * @author r1pp3rj4ck <*****@*****.**>
  */
 private function setParameters(\Doctrine\ORM\Query $query, array $parameters)
 {
     foreach ($parameters as $name => $param) {
         $query->setParameter($name, $param['value']);
     }
     return $query;
 }
Example #5
0
 public function testStaticApply()
 {
     $staticSegmentStub = new Segment();
     $staticSegmentStub->setType(new SegmentType(SegmentType::TYPE_STATIC));
     $filterData = ['value' => $staticSegmentStub];
     $subquery = 'SELECT ts1.entity_id FROM OroSegmentBundle:SegmentSnapshot ts1 WHERE ts1.segmentId = :segment';
     $em = $this->getTestEntityManager();
     $qb = new QueryBuilder($em);
     $qb->select(['t1.name'])->from('OroSegmentBundle:CmsUser', 't1');
     $ds = new OrmFilterDatasourceAdapter($qb);
     $query = new Query($em);
     $query->setDQL($subquery);
     $query->setParameter('segment', $staticSegmentStub);
     $this->staticSegmentQueryBuilder->expects($this->once())->method('build')->with($staticSegmentStub)->will($this->returnValue($query));
     $this->filter->init('someName', [FilterUtility::DATA_NAME_KEY => self::TEST_FIELD_NAME]);
     $this->filter->apply($ds, $filterData);
     $expectedResult = ['SELECT t1.name FROM OroSegmentBundle:CmsUser t1 WHERE t1.id', 'IN(SELECT ts1.entity_id FROM OroSegmentBundle:SegmentSnapshot ts1 WHERE ts1.segmentId = :segment)'];
     $expectedResult = implode(' ', $expectedResult);
     $this->assertEquals($expectedResult, $ds->getQueryBuilder()->getDQL());
     $params = $ds->getQueryBuilder()->getParameters();
     $this->assertCount(1, $params, 'Should pass params to main query builder');
     $this->assertEquals($staticSegmentStub, $params[0]->getValue());
 }
Example #6
0
 /**
  * Sets params value in a query object
  *
  * @access   public
  * @param    string $sParamName
  * @param    string $mParamValue
  * @return   $this
  * @since    1.0.0-alpha
  * @version  1.0.0-alpha
  */
 public function param($sParamName, $mParamValue)
 {
     $this->oQuery->setParameter($sParamName, $mParamValue);
     return $this;
 }
Example #7
0
 /**
  * @depends testIssue
  */
 public function testCacheMissWhenTypeChanges(Query $query)
 {
     $query->setParameter('field', 'test', 'string');
     $this->assertStringEndsWith('.field = ?', $query->getSQL());
 }
Example #8
0
    /**
     * @route: blog_tag
     * Tag Controller
     */
    public function tagAction($slug)
    {
        $em = $this->getEm();
        $query = new Query($em);
        $query->setDQL(
            'SELECT t
                FROM Bundle\BlogBundle\Entity\Tag t WHERE t.slug = ?1'
        );
        $query->setParameter(1, $slug);
        $tag = $query->getSingleResult();

        

        return $this->render('BlogBundle:Blog:tag.html.twig', array(
            'tag' => $tag,
            'posts' => $tag->getPosts()
        ));
    }