首页 文章

Symfony 2.4 CRUD请;找不到控制器

提问于
浏览
0

我(几乎)是Symfony的新手,而我正在使用2.4但是我遇到的问题让我头疼不已 . 好几天我都无法解决这个问题 .

我使用app / console命令来构建我的基本代码;从实体到crud:doctrine:generate:entity(构建模型),然后代码关系等doctrine:generate:实体(生成setter,getters等)doctrine:schema:update --force(更新到数据库)所有模型)生成:doctrine:crud(制作控制器,表格等......)

最后,由于我选择通过注释声明路由,我将所有控制器路由导入到我的bundle的routing.yml文件中,如:

AutocondatECRBundle_controllers:
    resource: "@AutocondatECRBundle/Controller"
    type:     annotation

据我所知,这使得生成的控制器内部的所有路由都可以生成 . 然而,无论我尝试测试什么路线,Symfony一直告诉我:

FileLoaderLoadException: Cannot import resource "/var/www/autocondat-ecr/src/Autocondat/ECRBundle/Controller" from "/var/www/autocondat-ecr/src/Autocondat/ECRBundle/Resources/config/routing.yml". (Class Autocondat\ECRBundle\Controller\Clasificacion_EstudioController does not exist)

无论我选择测试什么控制器或路由,总是找不到控制器类,相信我;那些课程在那里 .

  • 在名称或案例上没有拼写错误 - 有类,控制器在那里 - 有路由,即使使用以下也无法加载:
pattern: /whatever
defaults: { _controller: AutocondatECRBundle:ControllerWhatever:index }

这真让我抓狂 .

对于任何能够帮助我的人来说,这里是所有项目的来源:Link to the project

注意: - 我的项目中有几个包;我正在测试的是AutocondatECRBundle . - security.yml文件中的安全性已被停用,以便更快地进行测试 . - 当然,可以使用相同的控制台命令快速生成数据库 .

非常感谢你的帮助!

1 回答

  • 0

    为你的 class Autocondat\ECRBundle\Controller\Clasificacion_EstudioController

    Symfony将命名空间分隔符 \ 和下划线 _ 解析为目录分隔符,使用PSR-0 autoloading standards进行类的自动加载 .

    这意味着它期望您的类位于文件 src/Autocondat/ECRBundle/Controller/Clasificacion/EstudioController.php 中 .

    将您的类命名为 ClasificacionEstudioController ,将文件命名为 ClasificacionEstudioController.php .

相关问题