Zend Framework 2 не может получить HTTP Post - "get не смог получить или создать экземпляр для fromPost"

Я новичок в ZF2 и у меня проблема с отображением параметров post/get в моем контроллере. Появляется следующее исключение:

Zend\ServiceManager\Exception\ServiceNotFoundException

Zend\Mvc\Controller\PluginManager::get was unable to fetch or create an instance for fromPost

Мой index.phtml

...

<form id="formActionCl" action="/public/checklistCore/delete" method="post">
    <input type="submit" id="butto_doAction<?php echo $index;?>" hidden="true" value="<?php echo $this->translate('button_confirm_action', 'checklist');?>"/>
    <input type="hidden" id="checklist" value="<?php echo $index;?>">
</form>

...

И Контроллер:

    use Zend\Mvc\Controller\Plugin\AbstractPluginManager,

...

public function deleteAction()
{
    $cl_id = $this->fromPost('checklist');
    echo $cl_id;
    //$cl_id = $_GET['checklist'];
    $checklist = $this->getEntityManager()->getRepository('ChecklistCore\Entity\Checklist')->find($cl_id);
    $checklist->status = 'inactiv';

    $this->getEntityManager()->persist($checklist);
    $this->getEntityManager()->flush();

    return $this->redirect()->toUrl('index');
}

Я думаю, что что-то забыл в module.config, но я ничего не могу найти, как объявить право serviceManager ( module.config.php)

2 ответа

Решение

Два изменения необходимы. Во-первых, как писал Тим, это должно быть

$cl_id = $this->params()->fromPost('checklist');

Во-вторых, элементы формы передаются контроллеру по имени, а не по идентификатору. Таким образом, в дополнение к полю id на элементе вам нужно поле имени, как показано ниже:

<input type="hidden" id="checklist" name="checklist" value="<?php echo $index;?>">

Я думаю, что вы имеете в виду:

$cl_id = $this->params()->fromPost('checklist');

при условии, что вы пытаетесь получить переменную POST.

Другие вопросы по тегам