Zend framework $this->;getRequest()->;isPost()返回false
我正在处理一个现有代码,上一个开发人员创建了一个表单,但没有使用“$form”,代码是:Zend framework $this->;getRequest()->;isPost()返回false,zend-framework,zend-form,Zend Framework,Zend Form,我正在处理一个现有代码,上一个开发人员创建了一个表单,但没有使用“$form”,代码是: public function indexAction() { ....... $objRequest = $this->getRequest(); var_dump($objRequest->isPost()) ==> all time return false if ($objRequest->isPost()) { $posted
public function indexAction() {
.......
$objRequest = $this->getRequest();
var_dump($objRequest->isPost()) ==> all time return false
if ($objRequest->isPost()) {
$postedData = $objRequest->getPost();
$inputData = new Zend_Filter_Input($this->filters, $this->validators,
$objRequest->getPost());
$params = $this->getRequest()->getParams();
if ($inputData->isValid()) {
.....
在vie中:
<?php $actionURL = $this->url(array(
'controller' => 'index',
'action' => 'index',
'module' => 'default',
));
?>
<form name="indexFormn" id="indexForm" method="POST" action="<?php echo $actionURL; ?>">
<div class="AdminformDiv">
<div class="errorbox">
<?php
if (!is_array($this->actionErrors)) {
echo $this->actionErrors;
}
?>
</div>
<div>
<table border="0" cellpadding="0" cellspacing="0" style="width:700px">
<tbody>
<tr>
<td style="width:128px">Amount</td>
<td colspan="2">$ <?php echo $this->price;?> USD<td style="width:270px"> </td>
</tr>
<tr>
.....
表单具有method=“GET”
-它不是POST表单,因此isPost()
返回false。将其更改为method=“POST”
,应该就可以了。我刚刚遇到了一个类似的问题,经过数小时的搜索后找到了解决方案。检查开始和结束表单标记是否已填满表单。我不小心忘了删除以前放在视图文件中的附加关闭表单标记
我不能百分之百确定这是如何影响我的表单的,但是附加的结束表单标签将我的方法更改为“get”,即使我将其设置为post,因此当我点击submit时,它会跳过验证部分
我希望这能有所帮助。在我的例子中,使用zend的nginx配置产生的问题:
缺少的$args未填充查询字符串:
我改变:
try_files $uri $uri/ =404;
致:
相关问题对此有更详细的解释。但基本上:
与重写不同,如果
回退不是指定的位置。如果需要保留args,则必须
明确地这样做:
不,我真的很抱歉我犯了一个错误,当我在这里发布之前进行测试时,它是“post”。所以“get”或“post”在两种情况下都返回“false”?如果在控制器中,在您现有的var_转储之上,您临时添加var_转储($_SERVER['REQUEST_METHOD'])代码>,这给了你什么?var_dump retur mestring(3)“GET”
是的,非常奇怪?但我确信在我看来这是“post”?很难用我们掌握的信息进一步调试它。要么你发布的表单不是正在提交的表单,要么请求方法由于某种原因正在使用javascript进行更改。我理解,但在同一页面中,我确定它们只是一个表单,没有包含javascript?
try_files $uri $uri/ /index.php?$args;