Php 带参数的Silex重定向

Php 带参数的Silex重定向,php,symfony,redirect,silex,Php,Symfony,Redirect,Silex,我需要从一个控制器重定向到另一个控制器 $app->get('/test', function(Request $request) use ($app) { return $app->redirect($app["url_generator"]->generate("success", [ "myArg" => $myArg ])); }); $app->get('/test/success', function(Request

我需要从一个控制器重定向到另一个控制器

$app->get('/test', function(Request $request) use ($app) {

    return $app->redirect($app["url_generator"]->generate("success", [
        "myArg" => $myArg
    ]));
});


$app->get('/test/success', function(Request $request, $myArg) use ($app) {

    return $app['twig']->render('confirmation.twig', [
        'myArg' => $myArg,
    ]);
})->bind('success');
但这似乎不是一个好办法。。。我只想重定向到路由“/test/success”,并将$myArg变量传递给我的confirmation.twig模板


感谢您的帮助。

通过在函数的参数中添加$myArg,Silex希望它是URL中的一个参数,但是您的URL无法使用


如果要从函数的参数中获取参数,必须将路由定义修改为
/test/success/{myArg}

将变量存储在会话中?我需要一个尽可能中性的URL,因此不需要自定义变量。$myArg是一个布尔值。Silex不会直接调用其他函数,它会告诉浏览器这样做,因此不能传递布尔值,它将转换为字符串值。由于您不想将myArg作为URL的参数,URL生成器将把它作为查询字符串添加到URL中。因此,您的URL看起来像
/test/success?myArg=1
。如果要从操作中检索其值,则必须将请求传递给函数并执行
$request->get('myArg')。然后需要将字符串值转换为布尔值。