调用未定义的方法getEntityManager

时间:2013-10-04 12:40:09

标签: symfony doctrine-orm

我是Symfony的新手,我正在尝试运行基本的SQL查询,但不断收到以下错误。我很难对此进行故障排除。我想知道是否有人能指出我正确的方向,并可能解释我做错了什么?

非常感谢提前!

错误:

Call to Undefined Method ... DefaultController::getEntityManager()

实体(Company.php)

namespace Foo\FooBundle\Entity;
use Doctrine\Common\Annotations\AnnotationReader;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\ORM\EntityRepository;

 /**
 *@ORM\Entity
 *@ORM\Table(name="company")
 */
class Company extends EntityRepository
{
   /**
     *@ORM\id
     *@ORM\Column(type="integer")
     *@ORM\GeneratedValue(strategy="AUTO")
     */
    protected $id;

    /**
    *@ORM\Column(type="string", length=250)
    */
    protected $name;

    /**
    *@ORM\Column(type="string", length=650)
    */
    protected $description;
}

控制器

public function searchAction($word)
{
        $stmt = $this->getEntityManager()->getConnection()->prepare("SELECT * FROM company WHERE 
     MATCH(`keywords`) AGAINST(':word' IN BOOLEAN MODE)");
                  $stmt->bindValue('word ', $word);
                  $stmt->execute();
                  $results = $stmt->fetchAll();

    ..etc, etc....      

1 个答案:

答案 0 :(得分:2)

正如图基在评论中所说,

你应该从教义中获得经理:

$em = $this->getDoctrine()->getManager();

我看到你发布了很多关于symfony2的问题,尝试制作测试项目并生成实体,并为它做CRUD。

php app/console doctrine:generate:entity
php app/console doctrine:generate:crud

生成的代码将帮助您了解其工作原理