在Zend Framework 2中获取参数


Getting parameters in Zend Framework 2

我正在尝试使用Zend Framework 2获取一个特定的参数。例如,

// set the form to be used in the update templates view
    $form = new EmailTemplateForm();
    // gets the form method request (usually post)
    $request = $this->getRequest();
    // check to see if the request was a POST form request
    if ($request->isPost()) {
        // good to go
        // filter the form values now
        $email = new EmailTemplates();
        $form->setInputFilter($email->getInputFilter());
        // set the form data to hold all the values supplied by the form
        // via $request->getPost()
        $form->setData($request->getPost());
        // now we will see if the form is valid
        // we check if it is valid by the email form class we created
        if ($form->isValid()) {
            // it is valid
            // pass the form to data to the filter class via exchangeArray()
            $email->exchangeArray($form->getData());
            $tpl_id = !empty($this->getRequest()->getParam('id'))
            ? $this->getRequest()->getParam('id') : null;
            if ($this->getEmailTemplatesService()->modifyEmailTemplate($email, $tpl_id) === true) {
                // the updated email template was inserted into the database successfully
                // redirect to email template view
                return $this->redirect()->toUrl('/admin/email-template');
            } else {
                // error occured..
                // the error is logged automatically
                // redirect to email template view
                return $this->redirect()->toUrl('/admin/email-template/' . $tpl_id);
            }
        }
    } 

$this->getRequest()->getParam('id')会返回页面url中的id号吗?我将路线设置为以下格式:

'route'    => '/admin[/][:action][/:id]',

那么,如果表单被提交(通过POST),并且相应的url是/admin/edit template/3,$this->getRequest()->getParam('id')会包含3吗?

谢谢!

如果你想从post中获取参数,也许最好使用:$this->params()->fromPost('param_name');

如果您想从路线:$this->params()->fromRoute('id');

您可以使用"id"输入名称创建,也可以使用路由中的id。