Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Если у Вас поле типа VARCHAR(255), то ограничьте поле ввода 255 символами, и Вам не придется пользоваться функциями обрезания строк.
$form->add( new Zend_Form_Element_Text('username', 'Username', 'required minlen:3 regex:^[a-zA-Z0-9]+' ) );
$form->addElements(array(
array ('text', 'email', array (
'label' => 'E-mail',
'required' => false,
'filters' => array(
'StringTrim'
),
'validators' => array(
'EmailAddress'
)
))
));
fetchpassword:
_extends: base
action: /account/password/fetch
method: post
elements:
email:
type: text
options:
label: 'E-mail:'
required: '1'
validators: [ { validator: EmailAddress } ]
attribs: { tabIndex: '1', maxLength: '320' }
requestPassword:
type: submit
options:
label: 'Request Password'
attribs: { tabIndex: '2' }
decorators: [ { decorator: ViewHelper } ]
public function editAction() {
$contact = Contact::find($this->_request->id);
if (empty($contact)) {
throw new PageException_NotFound();
}
$errors = array();
if ($this->_request->isPost()) {
if (mb_strlen($this->_request->name) < 5) {
$errors []= "Имя должно быть длиннее 4 символов";
}
if (empty($errors)) {
$contact->setName($this->_request->name);
$this->_redirect(self::getUrl($contact));
}
}
$this->view->errors = $errors;
$this->view->contact = $contact;
}
<form action="" method="post">
<p>
<input type="text" name="name"
value="<?= $this->escape($this->contact->getName()) ?>" />
<button type="submit">Сохранить</button>
</p>
</form>
public function editAction()
{
$error = null;
if( $this->_request->isPost() )
{
if( $model->isValidData($this->_request->getPost()) )
{
// store data
}
else
{
$errors = $model->getErrors();
}
}
$this->view->error = $error;
}
подход зхенда к формам просто ужасен
[rap-kasta@acerAspire serebro]$ find application/fields/
....
application/fields/Login
application/fields/Login/Validator.php
application/fields/Login/Field.php
application/fields/Login/Validator
application/fields/Login/Validator/Used.php
....
$login = new fields_Login_Field('login');
$login->setRequired(true);
$login->addValidator(new fields_Login_Validator_Used());
$this->addElement($login)
Формы в Zend Framework