ZEND:无法访问发布数据

时间:2012-08-09 20:26:27

标签: php zend-framework

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

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

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

我创建了一个控制器,扩展了Zend Controller,并添加了一个名为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;

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

任何帮助都将不胜感激。

谢谢。

- 更新

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

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

这样做给了我 - HelloArray([controller] => wheel [action] => pay [module] =>默认[shipping] => UPS Ground [payPal] =>安全支付系统)

但是我仍然无法打印payZip ......我确实回应了,没有任何结果。

1 个答案:

答案 0 :(得分:0)

要从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;

在Action Controller中,您可以通过执行以下操作将数据保存到“view”对象:

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

但是当您在视图脚本中时,您 IN 视图脚本,因此$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>

我希望有所帮助!