У меня есть контроллер со следующим кодом для отображения списка, который можно искать и фильтровать:
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:
'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 работают правильно, и моя страница загружается в течение нескольких мс. Но при публикации данных страница загружается в течение ~ 5 минут. После этого он в конечном итоге перенаправит и покажет правильную страницу тоже.
Странно то, что на некоторых машинах код работает, а на других редирект post -> выполняется в течение ~ 5 минут. На компьютерах установлены одинаковые ОС и сборки браузера.
Я использую редирект неправильно?
вам нужно добавить return
так что постарайтесь:
return $this->redirect()->toRoute('myRoute/list', $post);
Других решений пока нет …