无法在已装入的ControllerCollection上设置默认值

时间:2012-07-19 14:13:58

标签: silex

当我在路径上挂载控制器集合时,默认值不起作用,我被迫提供一个值。

// app.php
...
$app->mount('/path/', MyControllerProvider());
....    

// my controller provider
class MyControllerProvider implements ControllerProviderInterface
{
    public function connect(Application $app)
    {
        $controllers = $app['controllers_factory'];

        $controllers->get('/{param}', function($param) {
             return $param;     
        })
        ->value('param','foo');
    }
}

当我尝试访问/ path /我可以关注错误:

NotFoundHttpException:找不到“GET / path /”

的路由

如果我访问/ path / somevalue,那么它可以工作。

如果您向主$ app添加路由,但在安装时没有路由,则默认值可以正常工作。

1 个答案:

答案 0 :(得分:0)

Silex将带有和不带斜杠的路径视为不同的路径。有关此事的问题已发布在github上:https://github.com/silexphp/Silex/issues/149

您可以尝试将两个路径注册到同一个函数(代码看起来很奇怪但应该可以工作)。