find()与createQuery

时间:2014-09-09 11:10:32

标签: symfony doctrine-orm

我在symfonyproject中有以下脚本。

use Rowoco\AllgemeinBundle\Entity\Place;
.
.

public function getPlacelist( $iduser )
{
    $em = $this->getDoctrine()->getManager();
    $request = Request::createFromGlobals();

    $placeRepo = $em->getRepository( "RowocoAllgemeinBundle:Place" );
    $placeEntity = $placeRepo->findBy(
        array(),
        array(),
        $request->request->get( "limitCount" ),
        $request->request->get( "limitStart" )
    );
    //return $placeEntity;

    $q = $em
        ->createQuery("SELECT p.description
                           FROM RowocoAllgemeinBundle:Place p
                           ");
    return $q->getResult();

}

我没有特殊的存储库或者其他。但是当我使用findby()时,我得不到结果。当使用createQuery时,我得到了2行。

你能告诉我,在哪里可以找到代码中的错误吗?

1 个答案:

答案 0 :(得分:1)

findBy需要一组键/值,如下所示:

array(
    'id' => 5,
    'name' => 'john',
    'friends' => array(1,23)
);

正如您在上一个条目中所看到的,您还可以传递一个数组,该数组具有WHERE … IN()查询的效果。你不能(AFAIK)传递给findBy的是范围和复杂的模式。