Как получить параметры 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' ?>
Другие вопросы по тегам