值未从ctp文件传递到CakePHP中的控制器

时间:2018-09-29 13:30:09

标签: php cakephp shopping-cart cakephp-3.6

我已经尝试过在该论坛和其他论坛上发布的几种解决方案,但到目前为止还没有帮助。所以,我最后发表了我的问题。顺便说一句,我正在使用CakePHP 3.6。

我正在尝试通过$product->id中的“提交”按钮将变量(view.ctp)传递给控制器​​动作“ addit”,但是我只是得到“ Undefined variable:id”(我尝试过{{1 }}和addit($id)两种情况下我的结果相同。)

view.ctp

addit()

控制器:产品

<p>
    <?php echo $this->Form->create('NULL',['url'=>['controller'=>'products','action'=>'addit']]);?>
    <?php echo $this->Form->input('id', ['type' => 'hidden', 'value' => $product->id]); ?>

    <?php echo $this->Form->button('Add to cart now');?>

    <?php echo $this->Form->end();?>

</p>

2 个答案:

答案 0 :(得分:1)

根据Cakephp 3.6

  

可以使用以下命令访问所有POST数据   Cake \ Http \ ServerRequest :: getData()。包含数据的任何表单数据   prefix将删除该数据前缀。例如:

// An input with a name attribute equal to 'MyModel[title]' is accessible at
$title = $this->request->getData('MyModel.title');

您可以像这样获得$ id变量的值:

$id = $this->request->getData('id');

进一步阅读:Request Body Data

答案 1 :(得分:0)

这是您想要做的吗?

$id = $this->request->getData('id');
debug($this->Products->get($id)); //for test