我刚刚尝试对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
我不认为适用于这种情况。
任何建议都将不胜感激。