Silex Before Middleware无法正常工作

时间:2015-07-27 06:50:29

标签: api routing routes silex before-filter

构建一个小的Silex API,其中一个要求是允许返回多种语言,例如JSON / XML,例如:如果我收到这样的网址:

index.php?language=json

我应该收到JSON回复,如果收到的话:

index.php?language=xml

我应该收到XML响应。

所以我认为合乎逻辑的事情就是在Silex的before调用上检查这个参数,如下所示:

$planets->before(
    function (Request $request) use ($app){
        $app['request_lang'] = 'json';
        if($request->get('lang') != null){
            $app['request_lang'] = $request->get('language');
        }
        return $app;
    }
);

我在我的引导程序中有这个代码,但由于某种原因,'request_lang`永远不会在$ app上设置...

我使用控制器提供程序接口将我的控制器分组在不同的类中,在我的引导程序中,我只是按如下方式安装组:

$app->mount("/planets", new ControllerProvider\Planet());

我在任何坐骑之前调用上述before动作。我也尝试在每个组中放置before动作,但仍然没有运气。

有人能告诉我为什么没有设置['request_lang']吗?

由于

0 个答案:

没有答案