我如何在 Zend Framework 3 中正确重定向?

How do i correctly redirect in Zend Framework 3?

我有一个带有以下代码的控制器来显示一个可以搜索和过滤的列表:

public function listAction() {

    if($this->getRequest()->isPost()) {
        $post = array_filter($this->getRequest()->getPost()->toArray(), function($value) {
            return ($value !== null && $value !== false && $value !== ''); 
        });
        $this->redirect()->toRoute('myRoute/list', $post);
    }
    $filter = $this->params()->fromRoute();
    // Get correct Data and display as list
}

我的路线:

'myRoute' => [
            'type' => Literal::class,
            'options' => [
                'route'    => '/myRoute',
                'defaults' => [
                    'controller' => Controller\MyController::class,
                    'action'     => 'index',
                ],
            ],
            'may_terminate' => false,
            'child_routes' => [
                'list' => [
                    'type' => Segment::class,
                    'options' => [
                        'route'    => '/list[/page/:page][/search/:search][/type/:type]',
                        'defaults' => [
                            'controller' => Controller\MyController::class,
                            'action'     => 'list',
                            'page'       => 1
                        ],
                    ],
                ],
... other routes

Get-Requests 工作正常,我的页面在几毫秒内加载。但是当 posting 数据时,页面加载约 5 分钟。之后它最终也会重定向并显示正确的页面。

奇怪的是,代码在某些机器上运行正常,但在其他机器上 post -> 重定向运行约 5 分钟。这些机器安装了相同的 OS 和浏览器版本。

我是否错误地使用了重定向?

您需要添加return

所以尝试:

 return $this->redirect()->toRoute('myRoute/list', $post);