0

问候。{{Solved}} 为了获取 POST 数据,您必须使用 $this->formHidden 来保存所有数据。即使变量在内部,如果它们不在某种形式的项目中,它们也不会被传递。

我无法访问 ZEND 中的帖子数据。

用户路径 - 开始索引页面 -> 提交页面 -> 支付页面

我创建了一个控制器,扩展了 Zend 控制器,并添加了一个名为 payAction 的操作。用户可以从索引页面转到提交页面。在我将所有数据都包含在变量中之后,我使用了一个表单和一个提交按钮转到“支付页面”。但是,我无法获得任何 POST 数据。

public function payAction()
{
 $data = $this->getRequest();
}

我尝试将 getRequest、getParam、getRawBody 放在该控制器函数中。在页面本身我已经尝试过。

echo 'Hello';
   echo $request;
   echo $data;
   echo $_POST['payZip'];
   echo $_POST['data'];
   echo $_POST[$data];
   echo $request;
   echo $this->values['payZip'];
   echo $payZip;
   echo $this->values['shippingDone'];
   echo $stuff;

为了获取我的帖子数据,我可以在我的控制器或视图中放置任何东西吗?我使用了一个表单方法=“post”和一个按钮,它确实允许我进入页面。我可以看到你好。但是没有任何帖子数据可用。

任何援助将不胜感激。

谢谢你。

- 更新

    $data = $this->getRequest();
    $param = $this->_request->getParam('payZip');

    if($this->getRequest()->isPost())
    {
    print_r($this->_getAllParams());
    echo $param;
    }

这样做给了我 - HelloArray([控制器] => 轮 [动作] => 支付 [模块] => 默认 [运费] => UPS Ground [贝宝] => 安全支付系统)

但我仍然无法打印 payZip ......我做了回声,没有任何结果。

4

1 回答 1

1

要从 Zend Framework 获取参数,您需要在 Action Controller 中执行此操作:

$data = $this->_request->getParams();

您还可以像这样获取单个参数

$param = $this->_request->getParam('payZip');

看起来你做错了什么是你只得到了“请求对象”。然后您需要调用该对象方法来获取请求数据。

这是我在测试参数时经常使用的一些简单代码:

public function indexAction()
{
    #::DEBUG:: 
    echo '<pre>'; print_r($this->_request->getParams()); echo '</pre>';
    #::DEBUG:: 
}

这将显示您的所有参数。您会注意到,您还将使用参数获取模块、控制器和操作的名称。

编辑

附言。如果您尝试在视图脚本中使用该参数,则需要执行以下操作:

echo $this->data['payZip'];

echo $this->param;

在您的动作控制器中,您可以通过执行以下操作将数据保存到“视图”对象:

$this->view->myVariable = 'Hello';

但是当您在视图脚本中时,您就视图脚本中,因此$this代表$this->view来自动作控制器。

因此,您可以像这样访问变量:

echo $this->myVariable;

将所有内容包装成更大的代码块以供理解:

你的控制器

public function indexAction()
{
    // get all parameters and pass them to the view
    $this->view->params = $this->_request->getParams();
    // get an individual parameter and pass it to the view
    $this->view->payZip = $this->_request->getParam('payZip');
}

您的视图脚本

<!-- Dump all parameters -->
<pre><?php print_r($this->params); ?></pre>
<!-- Print payZip -->
<p>My PayZip is: <?php echo $this->payZip; ?></p>
<!-- Print payZip from full parameter array -->
<p>My PayZip (array) is: <?php echo $this->data['payZip']; ?></p>

我希望这会有所帮助!

于 2012-08-09T20:29:57.993 回答