ZF3:$ request-> getQuery(' my_var')vs $ this-> params() - > fromQuery(' var_name')?

时间:2017-08-02 12:24:13

标签: php zend-framework zend-framework3

我从这个book学习ZF3,我遇到了这个:

在我的控制器中,我可以像这样在ZF3中获得$ _GET [' var_name']:

<div id="tttssss" style="display:none;">
  <div id="upload-demo">
  </div>
  <div style="width:70%;margin: 0 auto;">
    <a class="btn btn-success upload-result" rel="<?php //echo $imge['User']['id'] ?>">Upload Image</a>
  </div>
</div>


<?php echo $this->Html->image($fileuser, array('class' => 'img-circl', 'id' => 'user-select-image', 'style' => 'margin-top:30px!important;')); ?>
<?php echo $this->Form->file('User.profile_img', array('id' => 'my_file', 'style' => 'display:none;')); ?>

或者这样:

$request = $this->getRequest();
$request->getQuery('var_name');

两者之间的区别是什么? (重述问题:为什么有两种方法可以做同样的事情?)。在特定情况下,是否优先于另一个?

2 个答案:

答案 0 :(得分:3)

数据是请求的一部分,因此它就是在请求对象中保存的原因。 params控制器插件(您的第二个示例)提供了一种更简洁的方式来访问此数据,因此您应该使用它来从控制器访问数据。

答案 1 :(得分:2)

$this->params()->fromQuery('var_name');

此处$this->params()是控制器插件,您只能在控制器中使用它。

但是

$request = $this->getRequest();
$request->getQuery('var_name');

您可以访问任何类的请求,如下所示 -

$request = new Request();