【发布时间】:2019-08-22 14:41:55
【问题描述】:
所以我试图从 cake 的表单构建器中的表单发送一些数据,但由于某种原因,当我打印出 $this->data 或 $this->request->data 时,提交的数据都没有显示
我尝试自己创建表单并使用 cake 的表单生成器,我需要通过 POST 发送这些数据。如果我将其作为 GET 参数发送,数据就会显示出来。
view.ctp
echo $this->Form->create(null, array('action' => 'downloadbgc', 'type' => 'get'));
echo $this->Form->input('userId', ['type' => 'text' , 'id' => 'userId', 'name' => 'userId', 'value' => $user->id]);
echo $this->Form->input('product_id', ['type' => 'hidden' , 'id' => 'product_id', 'name' => 'product_id', 'value' => $user->product_id]);
echo $this->Form->submit('Download PDF', array('class' => 'btn btn-icon btn-primary', 'title' => 'Download'));
echo $this->Form->end();
controller.php
...
public function downloadbgc() {
$this->autoRender = false;
print_r("Data: ");
print_r($this->data); die();
}
}
...
打印出来时,我得到Data: Array() 而不是Array('userId' => X, 'product_id' => Y) 我很肯定这些值不为空,因为它们打印到控制台。
【问题讨论】:
-
如果你使用 POST 应该可以工作,但如果你使用 GET 就不行。请确保在进行更改时刷新表单视图(不仅仅是
/controller/downloadbgc/),并且view()和downloadbgc()在同一个控制器中。
标签: forms cakephp-2.x