<label>Адрес электронной почты</label>
<input type="email" name="formfield[1]" placeholder="email@example.com" maxlength="50" pattern="^[^\s@]+@[^\s@]+\.[^\s@]+$" required="5"/>
Все берется из атрибутов. В первую очередь метод валидации, например
validator['validate_'+field.type].call();
validate_email:function() {
// бла-бла-бла
},
На сервере:
Код:
|
$fields('email')
->type('email')
->label('Адрес электронной почты')
->placeholder('email@example.com')
->maxlength(50)
->pattern()
->required(5); |
Совпадение имени поля с типом значения не имеет, просто в бд оно так и называется имейл. Проперть pattern пустая, потому что рега имейла относится к вечным и смысла ее каждый раз прописывать нет. В классе есть метод который достает из массива регу по ключу имейл и втыкает в проперь по признаку имени проперти - pattern. Но если нужен особый для конкретного случая -
Код:
|
$fields('image')
->type('file')
->label('Загрузка файла')
->maxlength(200)
->multiple(3)
->sub_label(' (максимум: '.$fields->image->multiple
.' по '.$fields->image->maxlength.'Кб, '.($types='jpg,jpeg,png,gif').')')
->pattern($types)
->accept('image/*'); |
и рендер его впихнет в атрибут автоматически. Таким образом достигается цель - хранить факт в одном месте.
Но, блин, с файлами облом. Кроме типов файлов (тупой accept же берет все подряд) надо еще проверять имя файла - а для второго паттерна места уже нет.