【问题标题】:Symfony2 FOS Rest bundle routing FileLoaderLoadException controllerSymfony2 FOS Rest bundle 路由 FileLoaderLoadException 控制器
【发布时间】:2015-12-09 01:14:06
【问题描述】:

我的 Symfony2 设置有一个非常奇怪的问题。

我正在开发一个 RESTful Web 服务并希望设置路由。

我有一个可以正常工作的应用程序,并且想更改我的 routing.yml 配置。

工作配置

my_product:
    resource: My\Bundle\ProductBundle\Controller\DefaultController
    type:     rest
    prefix:   /

当我将其更改为:

my_product:
    resource: "@MyProductBundle/Controller/"
    type:     rest
    prefix:   /

我收到以下错误:

Symfony\Component\Config\Exception\FileLoaderLoadException" message="找不到控制器的类 @MyProductBundle/Controller/ 中的“@MyProductBundle/Controller/”(其中 正在从 “/home/myproduct/domains/example/v5/app/config/routing.yml”)。制作 确保“MyProductBundle”捆绑包已正确注册和加载 在应用程序内核类中。如果捆绑包已注册,请制作 确保捆绑路径“@MyProductBundle/Controller/”不为空。

当我将类型从“rest”更改为“annotation”时,错误消失了。

我做错了什么?我找不到它,我的搜索一无所获。

非常感谢!

【问题讨论】:

  • 您是否尝试将“@MyProductBundle/Controller/”更改为“@MyProductBundle/Controller/DefaultController”?错误是说找不到控制器的类。无论如何,当您指定type: rest 时,您会告诉捆绑包自动从resource 中指定的控制器的操作名称生成路由,因此resource: My\Bundle\ProductBundle\Controller\DefaultController 应该可以工作,我认为交换您提到的两个路由没有任何好处。\跨度>
  • 感谢您的帮助!我认为不提及控制器名称更容易,因为它不必将每个控制器添加到我的路由器配置中,从而节省了我的时间。您对此有何看法?
  • 我不这么认为,先生。type:annotation 告诉FrameworkBundle 在您在resource 中指定的捆绑包的controller 文件夹中查看您的控制器文件,并查找已定义的路由作为注释。但是type:rest 告诉FOSRestBundle 在特定控制器中查找动作,并根据动作名称自动生成路由。这是由 2 个不同的捆绑包处理的两种不同的事情。 FOSRestBundle 实现了这种自动化,但我认为它还没有为controller 文件夹中的所有控制器实现这一点。我希望我没有错,等待专家详细信息表格 SO
  • 这个问题你在哪里?我是完全正确的还是我遗漏了什么?有兴趣了解更多
  • 现在我只是保持原样,因为缺乏时间和答案。也许我会在(不久的)将来悬赏它。

标签: php rest symfony fosrestbundle


【解决方案1】:

在使用 FOSRestBundle 时,您目前无法一次导入包的所有控制器。 It will be added in FOSRestBundle 2.0。像第一个示例一样单独导入控制器。

【讨论】:

  • 2.0 版已于 2016 年 6 月 21 日发布
猜你喜欢
  • 2014-01-30
  • 2012-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-30
  • 2013-07-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多