【问题标题】:Silex redirect with argument带参数的 Silex 重定向
【发布时间】:2016-08-28 00:35:42
【问题描述】:

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

$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模板。

感谢您的帮助。

【问题讨论】:

  • 在会话中存储变量?

标签: php symfony redirect silex


【解决方案1】:

通过将 $myArg 放入函数的参数中,Silex 期望它是来自您的 URL 的参数,但是您的 route definition isn't dynamic 所以它不能工作。

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

【讨论】:

  • 我需要一个尽可能中性的 URL,所以没有自定义变量。 $myArg 是一个布尔值。
  • Silex 不会直接调用你的其他函数,它会告诉你的浏览器这样做,所以你不能传递布尔值,它将被转换为字符串值。由于您不想将 myArg 作为 URL 的参数,因此 URL 生成器会将其作为查询字符串添加到您的 URL。所以你的 URL 看起来像/test/success?myArg=1。如果您想从您的操作中检索其值,您必须将请求传递给您的函数并执行$request->get('myArg');。然后您需要将字符串值转换为布尔值。
猜你喜欢
  • 1970-01-01
  • 2013-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多