Я страдаю от Zend_validate, когда я пишу форму и пытаюсь добавить валидаторы, единственное, что мне подходит, если я отправляю форму без значений, это будет отображать сообщение об ошибке, но если я отправлю хорошие значения, это будетзастрял на некоторое время, а затем выдал фатальную ошибку, сообщив, что максимальное время выполнения 30 секунд превышено в /Applications/MAMP/htdocs/MyApplicationFolderName/library/Zend/Validate/Hostname.php в строке 608
Помогите, пожалуйста, код действия моего контроллера:
public function createAction()
{
// action body
$roleService=new User_Service_RoleService($this->em);
$userForm=new User_Form_UserForm($roleService->listAllRoleNames());
$userForm->startForm();
$userForm->setAction('create');
$userForm->setMethod('post');
if($this->getRequest()->isPost() )
{
if($userForm->isValid($this->getRequest()->getPost()))
{
$this->userAccountService->createUser($this->getRequest()->getParams());
$this->_forward('confirm');
}
}
$this->view->form=$userForm;
}
и мой код класса формы
class User_Form_UserForm extends Zend_Form {
//put your code here
private $roles;
public function __construct($options = null) {
parent::__construct($options);
$this->roles=$options;
}
public function startForm()
{
$idForm=new Zend_Form_Element_Hidden('id');
$this->addElement($idForm);
///////////
$userEmailForm=new Zend_Form_Element_Text('email');
$userEmailForm->setRequired(TRUE);
$userEmailForm->setLabel('Email');
$emailValidator=new Zend_Validate_EmailAddress();
// $emailValidator->setOptions(array('domain' => FALSE));
$userEmailForm->addValidator($emailValidator,false);
$userEmailForm->setAttrib('size', 25);
$userEmailForm->setFilters(array(new Zend_Filter_StringToLower(),
new Zend_Filter_StringTrim())
);
$this->addElement($userEmailForm);
}
}
Это небольшая часть моей формы, это очень простой, но не работающий Iam с использованием MAMP PHP 5.3.5 из-за Doctrine2 и пространств имен
Пожалуйста, любая помощь будет очень признательна.
Примечание. Я также пробовал другие средства проверки, такие как длина строки, и показала ту же ошибку.