php – 需要Zend表单的帮助
发布时间:2020-12-13 21:40:55 所属栏目:PHP教程 来源:网络整理
导读:我正在创建一个zend表单状态下拉列表,让用户更新其状态. 所有状态值都来自数据库. 使用getProviderQuoteStatus($providerId,$quoteId,$quoteStatusId)方法确定用户可以使用的状态. 我目前面临的问题是表单何时通过验证过程. 我在大海捞针中找不到’1′(因为
我正在创建一个zend表单状态下拉列表,让用户更新其状态.
所有状态值都来自数据库. 我目前面临的问题是表单何时通过验证过程. 我在大海捞针中找不到’1′(因为状态值填充在控制器中而不是表单本身,因此providerQuoteStatus表单元素数组为空).任何人都可以帮助我如何解决这个问题? 非常感谢提前! private function getProviderQuoteStatusForm() { $form = new Application_Form_ProviderQuoteStatus(array( 'action' => '/leads/update-Provider-Quote-Status','method' => 'post',)); return $form; } private function getProviderQuoteStatus($providerId,$quoteStatusId) { $form = $this->getProviderQuoteStatusForm(); $providerQuoteStatus = new Application_Model_DbTable_ProviderQuoteStatus(); $providerQuoteStatusValues = $providerQuoteStatus-> getProviderQuoteStatusUpdateValues ($quoteStatusId); $form->getElement('providerQuoteStatus')->addMultiOptions($providerQuoteStatusValues); $form->getElement('providerQuoteStatus')->setValue($quoteStatusId); $form->getElement('quoteId')->setValue($quoteId); // set Quote Id to the hidden field return $form; } public function updateProviderQuoteStatusAction() { $form = $this->getProviderQuoteStatusForm(); // Status Update dropdown box $this->view->form = $form; if ($this->getRequest()->isPost()) { // is post type request has been made $formData = $this->getRequest()->getPost(); if ($form->isValid($formData)) { // form elements has been validated $quoteId = $form->getValue('quoteId'); $providerQuoteStatus = $form->getValue('providerQuoteStatus'); $this->_helper->redirector('lead'); // redirect back // $this->_forward('leads'); } $form->populate($formData); } } 解决方法
取自
Zend Website:
默认情况下,此元素注册一个InArray验证器,该验证器验证已注册选项的数组键.您可以通过调用setRegisterInArrayValidator(false)或将FALSE值传递给registerInArrayValidator配置键来禁用此行为. 我之前遇到过这个问题,并且禁用此默认验证器可以解决问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |