无法加载资源“”。确保有支持“rest”类型的加载器
Posted
技术标签:
【中文标题】无法加载资源“”。确保有支持“rest”类型的加载器【英文标题】:Cannot load resource "". Make sure there is a loader supporting the "rest" type 【发布时间】:2020-12-01 19:16:24 【问题描述】:我在使用 Symfony V4.99 和 fosrestbundle
创建 REST API 时遇到此错误。
当我运行php bin/console debug:router
时,我明白了:
无法加载资源“App\Controller\ListController”。确保 有一个支持“rest”类型的加载器。
这里是Routes.yaml的代码:
lists:
type : rest
resource : App\Controller\ListController
prefix : api
这里是 fos_rest.yaml 的代码:
fos_rest:
format_listener:
rules:
- path: ^/, fallback_format: json, priorities: [ 'json' ]
exception:
enabled: true
view:
view_response_listener: 'force'
formats:
json: true
ListController.php的代码如下:
<?php
namespace App\Controller;
use Symfony\Component\Routing\Annotation\Route;
use FOS\RestBundle\Controller\AbstractFOSRestController;
use FOS\RestBundle\Controller\Annotations as Rest;
class ListController extends AbstractFOSRestController
Public function getListsAction()
【问题讨论】:
我会假设,在您的 routes.yaml 中,类型最终可能是annotation
(完全不清楚,因为您还没有定义任何路由),正如 symfony.com/doc/current/… 中所建议的那样
请分享更多细节 - Symfony 没有 v4.99
我编辑了我的帖子并添加了 fos_rest.yaml 的代码。
【参考方案1】:
在 symfony 5.* 与 FOSRestBundle 中,路由有问题,尝试:
安装这个https://github.com/handcraftedinthealps/RestRoutingBundle
#> composer 需要 handcraftedinthealps/rest-routing-bundle
然后添加到 config/bundles.php 这一行:
HandcraftedInTheAlps\RestRoutingBundle\RestRoutingBundle::class=> ['all' => true],
【讨论】:
【参考方案2】:最新版本的 FosRestBundle (3.0.2) 存在错误/错误 使用这个 cmd 来安装它:composer require friendsofsymfony/rest-bundle:2.5.0
【讨论】:
【参考方案3】:对于最新 (>3.0),您必须将路由类型从休息更改为注释。 Information Here
【讨论】:
以上是关于无法加载资源“”。确保有支持“rest”类型的加载器的主要内容,如果未能解决你的问题,请参考以下文章
无法加载类型“System.ServiceModel.Activation.HttpHandler”与 WCF REST 的版本冲突