您好我的路由问题。
我的普通Appbundle充满了用户和管理员的控制器。我不想将我的所有控制器分成另一个包。
所以我的计划是在我的AppBundle中创建另一个子目录,如下所示。
src/AppBundle/Controller/Admin/Admincontroller
src/AppBundle/Controller/User/UserController
在我的routing.yml中,我创建了这样的链接(也尝试了不同的选项)
test:
path: /test
defaults: { _controller: AppBundle:Admin/TestController:test }
但我仍然遇到路由问题
也无法在我的控制器中创建路线。
我的命名空间如下所示
namespace AppBundle\Admin\Controller;
所以我不确定我的路由有什么问题,以及为什么symfony无法识别我的控制器。在普通目录中,一切正常
我的错误消息
CRITICAL - Uncaught PHP Exception Symfony\Component\Config\Exception\FileLoaderLoadException: "Class AppBundle\Admin\Controller\TestController does not exist in C:\Users\ylamb\Documents\dev\db-yl\src\AppBundle/Controller/ (which is being imported from "C:\Users\ylamb\Documents\dev\db-yl\app/config\routing.yml")." at C:\Users\ylamb\Documents\dev\db-yl\vendor\symfony\symfony\src\Symfony\Component\Config\Loader\FileLoader.php line 118
答案 0 :(得分:0)
使用Controller
格式时,不应使用Bundle:Controller:action
后缀:
test:
path: /test
defaults: { _controller: AppBundle:Admin/Test:test }
Fyi,您也可以在路由中使用正常的FQCN::method
语法。这样可以避免像这样的“魔法”和令人困惑的情况:
test:
path: /test
defaults: { _controller: AppBundle\Controller\Admin\TestController::testAction }
答案 1 :(得分:0)
控制器中的命名空间不正确:
namespace AppBundle\Admin\Controller;
它被放置在路径下:
AppBundle\Controller\Admin\TestController.php
所以它应该是
namespace AppBundle\Controller\Admin;
或者保留命名空间,但以其他方式组织目录。