symfony错误:找到了文件,但该类不在其中,类名或命名空间可能有拼写错误

时间:2016-04-29 11:17:17

标签: symfony

我是刚刚安装的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

1 个答案:

答案 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文件。