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

时间:2018-02-24 05:13:06

标签: zend-framework3

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

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

如何在视图中获取 ? (当然,没有直接访问superglobals $ _GET和$ _POST)

2 个答案:

答案 0 :(得分:1)

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

请参阅我的回答here

答案 1 :(得分:0)

作为返回和访问的另一种方式,您可以使用提供的&#34; Zend魔法&#34;。

在Controller中,返回如下:

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

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

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

ViewModel中你也可以使用一些Zend Framework魔法。您可以使用$getName$postName代替$this->getName / $this->postName。所以,打印do:

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