Значения не передаются из файла ctp в контроллер в CakeStack Overflow

Я пробовал несколько решений, опубликованных на этом форуме и других, но это не помогло до сих пор. Итак, я публикую свой вопрос наконец. Кстати, я использую CakePHP 3.6.

Я пытаюсь передать переменную ($product->id) через кнопку отправки в view.ctp к моему действию контроллера «addit», но я просто получаю «Undefined variable: id» (я пытался addit($id) а также addit() в любом случае у меня тот же результат.)

view.ctp

<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>

Контроллер: Продукты

public function addit() {
$this->autoRender = false;
if ($this->request->is('post')) {
// $this->Products->addProduct($this->request->data['Cart']['product_id']);
echo "".$this->Products->get($id);//for test
} else {
echo "".$this->Products->get($id);//for test
}
}

1

Решение

Это то, что вы хотите сделать?

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

Другие решения

Согласно Cakephp 3.6

Все данные POST могут быть доступны с помощью
Торт \ Http \ ServerRequest :: GetData (). Любые данные формы, которые содержат данные
Префикс удалит этот префикс данных. Например:

// 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');

Дальнейшее чтение: Данные тела запроса

1

По вопросам рекламы [email protected]