Doctrine select等于变量

时间:2014-01-03 22:13:56

标签: php symfony doctrine-orm doctrine symfony1

这就是我想要做的事情:

$query = $repository->createQueryBuilder('c')
     ->where('c.categoryParentid = ?', $pcategory->getcategoryId())
     ->orderBy('c.categoryId', 'ASC')
     ->getQuery();

$childcategories = $query->getResult();

$pcategory->getcategoryId()是一个整数。在哪里,这是正确的吗? 我收到这个错误:

ContextErrorException: Warning: get_class() expects parameter 1 to be object, integer given in /Applications/mampstack-5.4.20-0/apache2/htdocs/reuzze/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Expr/Base.php line 92

2 个答案:

答案 0 :(得分:3)

之前我没有使用过该语法,但Symfony文档中有using the query builder的示例,它们显示的内容如下:

$query = $repository->createQueryBuilder('c')
 ->where('c.categoryParentid = :pcategory')
 ->setParameter('pcategory', $pcategory->getcategoryId())
 ->orderBy('c.categoryId', 'ASC')
 ->getQuery();

答案 1 :(得分:0)

您还可以使用EntityRepository::findBy()方法(在Symfony 2.x文档here中概述),该方法允许您指定搜索条件和排序。

e.g。

$childCategories = $repository->findBy(array(
    'categoryParentId' => $pcategory->getCatagoryId()
  ),
  array(
    'categoryId' => 'ASC'
  )
);