Доброе время суток
У меня есть модель «class Model_User extends Model_Auth_User» в которой определены правила для регистрации пользователя
…
public function rules()
{
return array('username' => array(array('not_empty'),
array('min_length', array(':value', 4)), //'min_length' must = 4
array('max_length', array(':value', 32)),
array('regex', array(':value', '/^[-\pL\pN_.]++$/uD')
),
array(array($this, 'unique'),//modul "ORM", function 'unique($field, $value)' где username->$field, $this->$value
array('username', ':value')
),
),
'first_name' => array(array('not_empty'),
array('min_length',
array(':value', 2)),
array('max_length',
array(':value', 32)),
),
'password' => array(array('not_empty'),
),
'email' => array(array('not_empty'),
array('min_length',
array(':value', 4)),
array('max_length',
array(':value', 127)),
array('email'),
array(array($this, 'unique'),
array('email', ':value')
),
),
);
Ошибки сделанные в 'username' и 'email' программа обрабатывает замечатально (т.е. берет значения из моего файла).
Но если касается поля 'password', то framework почему-то лезет в «…\home\SiteDesigner\www\modules\orm\classes\Model\Auth\User.php», т.е. НЕ ПОЛУЧАЕТСЯ переопределить правило
И поэтому формируется $errors, в:
catch(ORM_Validation_Exception $e)
{
$errors = $e->errors('auth');
}
формируется не правильно:
Array ( [username] => Поле "Логин" должно быть длинной не менее 4 символов [email] => E-mail адрес должен быть адресом электронной почты [_external] => Array ( [password] => Поле "password" должно быть длинной не менее 8 символов ) ) В результате чего
<?php if ($errors):?>
<?php foreach ($errors as $error):?>
<div class="error"><?=$error?></div>
<?php endforeach?>
Выкидывает ошибку: «ErrorException [ Notice ]: Array to string conversion»
Получается я привязался к «User.php» не совсем правильно…
Спасибо.