我是刚刚安装的symfony框架的新手,并尝试运行第一个代码。
问题是: 正如文档中提到的,我创建了以下两个文件。
///home/scriptkiddie/symfony/projects/project1/src/AppBundle/Controller/MainController.php
namespace AppBundle\Controller;
use Symfony\Component\HttpFoundation\Response;
class MainController
{
public function contactAction()
{
return new Response('<h1>Contact us!</h1>');
}
}
=============================================== =====================
///home/scriptkiddie/symfony/projects/project1/app/config/routing.yml
app:
resource: "@AppBundle/Controller/"
type: annotation
# app/config/routing.yml
contact:
path: /contact
defaults: { _controller: AppBundle:Main:contact }
~
现在,当我去网址http://localhost:8000/contact
时我收到以下错误:
自动加载器期望类“AppBundle \ Controller \ MainController”在文件中定义 “/home/scriptkiddie/symfony/projects/project1/src/AppBundle/Controller/MainController.php”。找到该文件但该类不在其中,类名或命名空间可能有拼写错误。 500内部服务器错误 - RuntimeException
答案 0 :(得分:1)
我认为你正在混合两种路由定义。首先,您定义路由将通过注释设置,然后您将通过yml设置注释。
您应该将此注释添加到控制器:
///home/scriptkiddie/symfony/projects/project1/src/AppBundle/Controller/ManController.php
namespace AppBundle\Controller;
use Symfony\Component\HttpFoundation\Response;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
class MainController
{
/**
* @Route("/contact", name="contact")
*/
public function contactAction()
{
return new Response('<h1>Contact us!</h1>');
}
}
弃掉app / config / routing.yml文件。