在Zend Framework 2中获取参数

时间:2015-11-19 12:35:51

标签: php zend-framework

我正在尝试使用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')会从页面网址返回ID号码吗?我将路线设置为以下格式:

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

因此,如果表单已提交(通过POST),相应的网址为/ admin / edit-template / 3,则$ this-> getRequest() - > getParam('id')包含3?

谢谢!

1 个答案:

答案 0 :(得分:0)

如果您想从帖子中获取参数,可能最好使用:     $this->params()->fromPost('param_name');

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

您可以使用' id'输入名称,您可以使用路由中的id。