没有注释的类中的Doctrine Annotation错误

时间:2014-01-29 15:56:52

标签: symfony annotations doctrine

我刚刚尝试对Symfony2.1应用程序进行一些更改,主要涉及将我的所有模板从php转换为twig,并添加一些css样式。该应用程序在我的本地主机(在Windows7机器上运行的xampp)上运行良好。但是,当我将所有更改移动到我的舞台服务器(Ubuntu上的lampp堆栈)时,我甚至无法加载登录表单。当我检查apache error.log时,我得到以下内容......

PHP Fatal error:  Uncaught exception 'Doctrine\\Common\\Annotations\\AnnotationException' 
with   message '[Semantical Error] The annotation "@ORM\\Table" in class MyBundle
\Controller\SecurityController was never imported. Did you maybe forget to add a "use" 
statement for this annotation?' in 
/opt/MyProject/vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationException.php:52

问题是,我的SecurityController类没有使用Annotations,所以我不能为我的生活看到这个错误是如何产生的。

以下是我的SecurityController类的代码:

<?php
namespace MyBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\Security\Core\SecurityContext; 

class SecurityController extends Controller {
  public function loginAction()
  {
    $request = $this->getRequest();
    $session = $request->getSession();

    // get error if exists
    if($request->attributes->has(SecurityContext::AUTHENTICATION_ERROR)) {
      $error = $request->attributes->get(SecurityContext::AUTHENTICATION_ERROR);
    }
    else  {
      $error = $session->get(SecurityContext::AUTHENTICATION_ERROR);
      $session->remove(SecurityContext::AUTHENTICATION_ERROR);
    }
    return $this->render('MyBundle:Security:login.html.twig', array(
        'last_username'=>$session->get(SecurityContext::LAST_USERNAME),
        'error'=>$error
    ));
  }
}

我搜索过此错误消息,但主要是由于人们忘记了

use Doctrine\ORM\Mapping as ORM;

或使用

\Table

而不是

@ORM\Table

我不认为适用于这种情况。

任何建议都将不胜感激。

0 个答案:

没有答案