我(几乎)是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文件中的安全性已被停用,以便更快地进行测试。 - 当然,可以使用相同的控制台命令快速生成数据库。
谢谢 - 很多 - 你的帮助!
答案 0 :(得分:0)
为您的班级Autocondat\ECRBundle\Controller\Clasificacion_EstudioController
Symfony会将命名空间分隔符\
和下划线_
解析为目录分隔符,使用PSR-0 autoloading standards进行类的自动加载。
这意味着您希望您的课程位于src/Autocondat/ECRBundle/Controller/Clasificacion/EstudioController.php
。
将您的课程命名为ClasificacionEstudioController
,将文件命名为ClasificacionEstudioController.php
。