Как получить параметры GET и POST в Zend Framework 3?
Я использую ZF3, я знаю, что ниже работает в контроллерах:
$this->params()->fromQuery('my_get_var', 'default_value');
$this->params()->fromPost('my_post_var', 'default_value');
Как получить это во взглядах? (конечно, без прямого доступа к суперглобалам $_GET и $_POST)
2 ответа
Я предполагаю, что это так же, как ZF2, передавая их в поле зрения.
$viewModel = new ViewModel();
$viewModel->my_get_var = $this->params()->fromQuery('my_get_var', 'default_value');
$viewModel->my_post_var = $this->params()->fromPost('my_post_var', 'default_value');
return $viewModel;
Затем вы можете отобразить их в своем view.phtml
<?php echo $this->my_get_var; ?>
<?php echo $this->my_post_var; ?>
Смотрите мой ответ здесь.
В качестве альтернативного способа возврата и доступа вы можете использовать предоставленную "Zend magic".
В контроллере вернитесь так:
return [
'getName' => $this->params()->fromQuery('get_var', null),
'postName' => $this->params()->fromPost('post_var', null),
];
Волшебство здесь в том, что ViewModel
автоматически создан для вас. Второе чудо заключается в том, что возвращаемые ключи устанавливаются как переменные во вновь созданном ViewModel
,
(редактировать: только что заметил эту ссылку, предоставленную @Garry в своем ответе, который уже содержит вышеуказанное)
в ViewModel
Вы также можете использовать магию Zend Framework. Вы могли бы использовать $getName
а также $postName
вместо $this->getName
/$this->postName
, Итак, для печати делаем:
<?= $getName ?: 'No GET params given' ?>
<?= $postName ?: 'No POST params given' ?>