Symfony 2.4 CRUD请;找不到控制器

时间:2014-03-10 10:44:55

标签: php symfony doctrine-orm controller

我(几乎)是Symfony的新手,而我正在使用2.4,但是我遇到了一个让我头疼的问题。几天来,我一直无法解决这个问题。

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

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

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

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

FileLoaderLoadException:无法导入“/ var / www / autocondat-ecr / src / Autocondat / ECRBundle / Resources routing.yml中”。 (Class Autocondat \ ECRBundle \ Controller \ Clasificacion_EstudioController不存在)

无论我选择哪种控制器或路由进行测试,总是找不到控制器类,相信我;那些课程都在那里。

- 姓名或案件上没有拼写错误 班级就在那里,有控制器 -Routes在那里,即使使用以下也无法加载:

pattern: /whatever
defaults: { _controller: AutocondatECRBundle:ControllerWhatever:index }

这让我发疯了。

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

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

谢谢 - 很多 - 你的帮助!

1 个答案:

答案 0 :(得分:0)

为您的班级Autocondat\ECRBundle\Controller\Clasificacion_EstudioController

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

这意味着您希望您的课程位于src/Autocondat/ECRBundle/Controller/Clasificacion/EstudioController.php

文件中

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