symfony2在实体内部创建自定义查询 - getEntityManager()undefined

时间:2013-02-15 17:03:09

标签: symfony undefined-behavior

我希望在我的实体类中运行自定义查询。我不想为这个查询使用表映射我只想返回一个结果数组,但我希望查询仍然记录到记录器。我已经剥离了课程并重命名以试图说明我想要实现的目标

// src/Name/ExampleBundle/Entity/ExampleEntity.php

namespace Name\ExampleBundle\Entity;

class ExampleEntity
{

    public function getArrayFromExample(){

        $results = $this->getEntityManager()
        ->createQuery("SELECT * FROM exmapleTable LIMIT 50")
        ->getResult();

        return $results;
    }

}

以上返回类似

的内容
Fatal error: Call to undefined method {path}\ExampleEntity::getEntityManager() 

1 个答案:

答案 0 :(得分:0)

您的查询应位于实体存储库中,而不是实体本身。 http://mackstar.com/blog/2010/10/04/using-repositories-doctrine-2

然后你可以这样做:

public function getArrayFromExample(){
    $results = $this->_em
    ->createQuery("SELECT * FROM exmapleTable LIMIT 50")
    ->getResult();

    return $results;
}