Php 如何重定向到同一url?

Php 如何重定向到同一url?,php,request,silex,Php,Request,Silex,我试图弄清楚如何在silex中处理表单后重定向到同一url: public function someAction(Application $app) { $form = ... // building form if ('POST' === $app['request']->getMethod()) { $form->bindRequest($app['request']); if ($form->isValid())

我试图弄清楚如何在silex中处理表单后重定向到同一url:

public function someAction(Application $app) 
{
    $form = ... // building form

    if ('POST' === $app['request']->getMethod()) {
        $form->bindRequest($app['request']);

        if ($form->isValid()) 
        {
            $url = $app['url_generator']->generate(
                $app['request']->get('_route'),
                $app['request']->get('_route_params')
            );

            return $app->redirect($url);
        }
    }

    return $app['twig']->render(
       'form.html.twig', 
        array(
            'form' => $form->createView()
        )
    );
}
在这里是可能的,但在这里不起作用。(当然,我总是可以重定向到类似
$url?success
)的内容)

UPD:使用$url,一切都正确。关键是,如果您试图重定向到完全相同的url,它将不起作用

请求类有一个方法。您可以这样使用:

return $app->redirect($request->getRequestUri());
请求类有一个方法。您可以这样使用:

return $app->redirect($request->getRequestUri());

很抱歉用另一个问题回答您的问题,但是为什么要重定向到同一页?处理表单后,路线的逻辑应该只显示视图

public function someAction(Application $app) 
{
    $form = ... // building form

    if ('POST' === $app['request']->getMethod()) {
        $form->bindRequest($app['request']);

        if ($form->isValid()) 
        {
            $url = $app['url_generator']->generate(
                $app['request']->get('_route'),
                $app['request']->get('_route_params')
            );

            //return $app->redirect($url);
            // just remove the return here and you're all set!
        }
    }

    return $app['twig']->render(
       'form.html.twig', 
        array(
            'form' => $form->createView()
        )
    );
}

很抱歉用另一个问题回答您的问题,但是为什么要重定向到同一页?处理表单后,路线的逻辑应该只显示视图

public function someAction(Application $app) 
{
    $form = ... // building form

    if ('POST' === $app['request']->getMethod()) {
        $form->bindRequest($app['request']);

        if ($form->isValid()) 
        {
            $url = $app['url_generator']->generate(
                $app['request']->get('_route'),
                $app['request']->get('_route_params')
            );

            //return $app->redirect($url);
            // just remove the return here and you're all set!
        }
    }

    return $app['twig']->render(
       'form.html.twig', 
        array(
            'form' => $form->createView()
        )
    );
}


$url=$app['request']->getUri()$应用程序->重定向($url)不起作用?不起作用。。似乎重定向到完全相同的url根本不起作用
var_dump($app['request']->getUri())给出?它返回当前url:
字符串(20)http://website/items
这是您表单的URL吗?
$URL=$app['request']->getUri()$应用程序->重定向($url)不起作用?不起作用。。似乎重定向到完全相同的url根本不起作用
var_dump($app['request']->getUri())给出?它返回当前url:
字符串(20)http://website/items
这是您表单的URL吗?不是。与当前url相等的所有内容都不起作用您是否已将
返回值添加到您的代码中?你的问题没有。是的,对不起,我忘了。实际上,如果我更改重定向url,它可以工作,但不适用于相同的位置。完全相同的代码适用于我。你的日志是怎么写的?你的访问日志是怎么说的?我不知道,也许我用的是nginx的一些事情?不。与当前url相等的所有内容都不起作用您是否已将
返回值添加到您的代码中?你的问题没有。是的,对不起,我忘了。实际上,如果我更改重定向url,它可以工作,但不适用于相同的位置。完全相同的代码适用于我。你的日志是怎么写的?你的访问日志是怎么说的?我不知道,也许我用的是nginx,因为如果有人刷新页面,表单会被再次发送。这真的取决于用户。浏览器会提示他们,让他们知道表单将与任何帖子数据一起重新提交。我认为如果可以的话,最好避免所有这些。我可以在symfony2中这样做,但在这里不起作用。因为如果有人刷新页面,表单将被再次发送。这真的取决于用户。浏览器会提示他们,让他们知道表单将与任何帖子数据一起重新提交。我认为如果可以的话,最好避免所有这些。我可以在symfony2中这样做,但在这里不起作用。