首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在命令行中执行RuntimeException时

在命令行中执行RuntimeException时
EN

Stack Overflow用户
提问于 2014-01-23 14:58:57
回答 1查看 892关注 0票数 3

我正在尝试使用以下命令运行一个Silex子请求

代码语言:javascript
运行
复制
$subRequest = Request::create('/api/movie/show?id=61333');
$res = $app->handle($subRequest, HttpKernelInterface::SUB_REQUEST, false);

当我在Controller中运行这两行时,它非常好,但是当我试图在命令行中运行它时,在初始化路由和应用程序之后,我得到以下PHP错误:

代码语言:javascript
运行
复制
PHP Fatal error:  Uncaught exception 'RuntimeException' with message
'Accessed request service outside of request scope. Try moving that call to a before handler or controller.'
in /my/project/vendor/silex/silex/src/Silex/Application.php:132

我怀疑命令行上下文中有错误/未初始化的东西,但我不知道它是什么。知道吗?

有关信息,我的命令行脚本如下

代码语言:javascript
运行
复制
<?php
require_once __DIR__.'/../vendor/autoload.php';
$app = new Silex\Application();
// service providers init ...
$app->register(new Provider\UrlGeneratorServiceProvider());
$app->register(new Provider\ServiceControllerServiceProvider());
// ... more service providers init
// routes definition
require_once __DIR__.'/../src/routes.php';
// run sub query
$subRequest = Request::create('/api/movie/show?id=61333');
$res = $app->handle($subRequest, HttpKernelInterface::SUB_REQUEST, false);

预先感谢(再次,最后两行在Controller中工作得很好)

编辑:通过@smwhr解析:我需要用HttpKernelInterface::SUB_REQUEST替换HttpKernelInterface::SUB_REQUEST

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-23 15:45:52

您正在尝试处理一个SUBrequest,而不是首先有任何请求。

试试这个:

代码语言:javascript
运行
复制
$res = $app->handle($subRequest, HttpKernelInterface::MASTER_REQUEST, false);

如果您在脚本和控制器中使用相同的代码,只需测试$app的“请求”是否存在,以知道选择哪一个

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21311715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档