3
我試圖運行使用以下命令RuntimeException的執行命令行子請求時
$subRequest = Request::create('/api/movie/show?id=61333');
$res = $app->handle($subRequest, HttpKernelInterface::SUB_REQUEST, false);
當我運行一個控制器內的這兩條線,但是當我嘗試運行它完美罰款Silex的子請求在命令行中,初始化路線和應用程序後,我得到了以下PHP的錯誤:
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
我懷疑有什麼錯誤/未初始化命令行背景,但我想不出是什麼是。任何想法 ?
的信息,我的命令行腳本看起來像
<?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);
在此先感謝 (再次,最後兩行很好地工作在控制器內)
[編輯]:通過解析@smwhr:我需要用替換HttpKernelInterface :: SUB_REQUEST HttpKernelInterface :: MASTER_REQUEST
它的工作原理!非常感謝 – benoit