如何在 Zend Framework 3 中获取 GET 和 POST 参数?

How to get GET and POST parameters in view in Zend Framework 3?

我使用的是 ZF3,我知道以下内容适用于控制器:

$this->params()->fromQuery('my_get_var', 'default_value');
$this->params()->fromPost('my_post_var', 'default_value');

如何获得这些观看次数? (当然,不直接访问超全局 $_GET 和 $_POST)

我假设它与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; ?>

查看我的回答

作为 return 访问和访问的替代方式,您可以使用提供的 "Zend magic"。

在控制器中,return 如此:

return [
    'getName' => $this->params()->fromQuery('get_var', null),
    'postName' => $this->params()->fromPost('post_var', null),
];

这里的神奇之处在于 ViewModel 是自动为您创建的。第二个神奇之处在于 returned 键在新创建的 ViewModel 中设置为变量。

(编辑:刚刚发现 由@Garry 在他已经包含上述内容的回答中提供)

ViewModel 中,您还可以使用 Zend Framework 的一些魔法。您可以使用 $getName$postName 而不是 $this->getName/$this->postName。所以,打印做:

<?= $getName ?: 'No GET params given' ?>
<?= $postName ?: 'No POST params given' ?>