【问题标题】:Cannot load resource "." after writing in routing.yml无法加载资源“。”写在 routing.yml 之后
【发布时间】:2016-04-06 09:21:22
【问题描述】:

我做了一个自动写入routing.yml的命令。 我的问题是当我尝试浏览其中一条路线时

api:
    resource: "."
    type:     "api"
    prefix: /api

我得到了这个异常

无法加载资源“。”

我试图在我的命令中添加一个缓存:清除,但我得到了同样的异常。

【问题讨论】:

  • 你想达到什么目的?
  • 我想自动化某些配置和路由:在 routing.yml 和 config.yml 中编写路由和捆绑配置的命令行。可以,但是生成后配置不起作用。
  • 我不记得 FOSRestBundle 是如何解析这个指令的,但恐怕不可能按照你想要的方式。我目前唯一看到的是创建另一个 CompilerPass,它将附加适合您需要的配置。
  • 您是否正在为api 类型定义自定义加载程序?
  • @Matteo 我有一个不同的问题。我的路由正确且已加载。这是我的测试场景:我执行我的命令 api:configure 命令在 routing.yml 中写入配置 我浏览器 localhost:8000/api 我得到了异常,我做了缓存:清除 --> 没有更多的异常

标签: symfony


【解决方案1】:

我添加了一个缓存预热,它在命令终止后运行,Symfony 将路由转储到生成的代码中。

class TerminateListener {

    public function onConsoleTerminate(ConsoleTerminateEvent $event) {
        if ($event->getCommand()->getName() == ('my:command')) {
            $app = new Application();
            $cache_clear_command = $event->getCommand()->getApplication()->find('cache:warmup');
            $cache_clear_command->setApplication($app);
            $event->getOutput()->setVerbosity('VERBOSITY_QUIET');
            $cache_clear_command->run($event->getInput(), $event->getOutput());
        }
    }
}

services:
 warmup.listener:
        class:TerminateListener
        tags:
            - { name: kernel.event_listener, event: console.terminate , method: onConsoleTerminate }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-26
    • 2014-03-26
    • 2019-07-13
    • 2017-05-02
    • 2017-12-11
    • 1970-01-01
    相关资源
    最近更新 更多