forked from samdark/yiiframework_ru_cookbook
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathform.validation.reference.txt
208 lines (175 loc) · 16 KB
/
form.validation.reference.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
Краткий справочник по валидации
===============================
Данный справочник описывает валидацию в моделях и собран из официальной документации и
кода. Цель — получить всю информацию в одном месте в удобном виде. Это не вводная статья по
валидации в моделях.
Как работает валидация
----------------------
Класс [CModel] использует метод [CModel::rules()] для задания правил валидации.
Правила возвращаются в виде массива:
~~~
[php]
public function rules(){
return array(
array('username, password', 'required'),
array('password_repeat', 'required', 'on'=>'register'),
array('password', 'compare', 'on'=>'register'),
);
}
~~~
Приведённый код — пример того, как может быть реализован метод [CModel::rules()].
Каждый из внутренних массивов определяет своё правило валидации.
### Выбор валидаторов
Yii ищет валидатор в определённом порядке:
1. Метод модели с тем же именем, что указано в массиве.
2. Встроенный валидатор Yii, унаследованный от [CValidator].
3. Путь или псевдоним, указывающий на свой валидатор, унаследованный от [CValidator].
### Сценарии
Ждём появления дополнений [в оригинале статьи](http://www.yiiframework.com/doc/cookbook/56/).
### Стандартные параметры
~~~
[php]
array(
'список полей модели',
'валидатор',
'on'=>'имя сценария',
'except'=>'имя сценария',
'message'=>'сообщение об ошибке',
…параметры валидации…
);
~~~
- список полей модели: поля модели для валидации, разделённые запятыми;
- валидатор: определяет, какой валидатор использовать;
- on: определяет сценарий, для которого производится валидация. При указании нескольких
сценариев, они разделяются запятыми. Если параметр не задан, правило применяется для всех
сценариев;
- except: определяет сценарий, при котором указанное правило валидации игнорируется. При указании нескольких
сценариев, они разделяются запятыми.
- message: сообщение, выдающееся при ошибке валидации;
- …параметры валидации…: один или несколько дополнительных параметров, передающихся указанному валидатору.
Стандартные правила валидации
-----------------------------
- `boolean`: [CBooleanValidator], проверят, что значение переменной равняется `trueValue` или `falseValue`.
- allowEmpty, может ли значение равняться `null` или быть пустым.
- falseValue, значение `falseValue`.
- strict, является ли сравнение строгим: должны совпадать не только значения, но и их тип.
- trueValue, значение `trueValue`.
- `captcha`: [CCaptchaValidator], проверяет, что значение поля модели соответствует проверочному
коду CAPTCHA.
- allowEmpty, может ли значение равняться `null` или быть пустым.
- captchaAction, ID действия, показывающего изображение CAPTCHA.
- caseSensitive, использовать ли регистрозависимую проверку.
- `compare`: [CCompareValidator], сравнивает значение указанного поля модели с значением другого
поля и проверяет, равны ли они.
- allowEmpty, может ли значение равняться `null` или быть пустым.
- compareAttribute, имя атрибута, с которым будет производится сравнение.
- compareValue, постоянное значение, с которым будет производится сравнение.
- operator, оператор, используемый при сравнении.
- strict, является ли сравнение строгим: должны совпадать не только значения, но и их тип.
- `default`: [CDefaultValueValidator], инициализирует атрибуты указанным значением.
Валидацию при этом не выполняет. Нужен для указания значений по умолчанию.
- setOnEmpty, устанавливать значение по умолчанию только если значение равно `null` или пустой строке.
- value, значение по умолчанию.
- `email`: [CEmailValidator], проверяет, что значение является адресом email.
- allowEmpty, может ли значение равняться `null` или быть пустым.
- allowName, разрешать ли включать имя в адрес email.
- checkMX, проверять ли запись MX.
- checkPort, проверять ли 25-й порт.
- fullPattern, регулярное выражение, используемое для проверки адреса с именем.
- pattern, регулярное выражение, используемое для проверки адреса без имени.
- validateIDN, проверять ли адрес с IDN (internationalized domain names, интернационализованные доменные имена).
По умолчанию адрес содержащий IDN всегда будет неверным (значение false). Появилось в версии 1.1.13.
- `date`: [CDateValidator], проверяет, что значение является датой, временем или
и тем и другим вместе.
- allowEmpty, может ли значение равняться `null` или быть пустым.
- format, формат значения. Может быть массивом или строкой. По умолчанию равняется
'MM/dd/yyyy'. Остальные форматы описаны в API [CDateTimeParser].
- timestampAttribute, имя атрибута, в который будет записан результат разбора даты.
По умолчанию равен `null`.
- `exist`: [CExistValidator], проверяет, есть ли значение атрибута в определённой таблице.
- allowEmpty, может ли значение равняться `null` или быть пустым.
- attributeName, имя атрибута класса ActiveRecord, используемое для проверки значения.
- className, имя класса ActiveRecord, используемого для проверки.
- criteria, дополнительный критерий запроса.
- `file`: [CFileValidator], проверяет, был ли загружен файл.
- allowEmpty, можно ли не загружать файл и оставить поле пустым.
- maxFiles, максимальное количество файлов.
- maxSize, максимальный размер в байтах.
- minSize, минимальный размер в байтах.
- tooLarge, сообщение об ошибке, выдаваемое если файл слишком большой.
- tooMany, сообщение, выдаваемое если загружено слишком много файлов.
- tooSmall, сообщение, выдаваемое если загруженный файл слишком мал.
- types, список расширений файлов, которые позволено загружать.
- wrongType, сообщение, выдаваемое если данный тип файла загружать нельзя.
- mimeTypes, список MIME-типов файлов, которые позволено загружать. Можно использовать при условии, что
установлено PECL-расширение fileinfo. Появилось в версии 1.1.11.
- wrongMimeType, сообщение, выдаваемое если данный тип файла загружать нельзя. Можно использовать при условии,
что установлено PECL-расширение fileinfo. Появилось в версии 1.1.11.
- `filter`: [CFilterValidator], применяет к данным фильтр.
- filter, метод-фильтр.
- `in`: [CRangeValidator], проверяет, входит ли значение в заданный интервал или список значений.
- allowEmpty, может ли значение равняться `null` или быть пустым.
- range, список допустимых значений или допустимый интервал.
- strict, является ли сравнение строгим: должны совпадать не только значения, но и их тип.
- not, позволяет проверить исключение из интервала вместо вхождения в него.
- `length`: [CStringValidator], проверяет, что количество введённых символов соответствует некоторому значению.
- allowEmpty, может ли значение равняться `null` или быть пустым.
- encoding, кодировка проверяемой строки.
- is, точное количество символов.
- max, максимальное количество символов.
- min, минимальное количество символов.
- tooShort, сообщение об ошибке, выдаваемое если количество символов слишком мало.
- tooLong, сообщение об ошибке, выдаваемое если количество символов слишком велико.
- `numerical`: [CNumberValidator], проверяет, что значение является числом в определённом интервале.
- allowEmpty, может ли значение равняться `null` или быть пустым.
- integerOnly, только целые числа.
- max, максимальное значение.
- min, минимальное значение.
- tooBig, сообщение об ошибке, выдаваемое если значение слишком велико.
- tooSmall, сообщение об ошибке, выдаваемое если значение слишком мало.
- integerPattern, регулярное выражение, используемое для валидации целых чисел. Используется тогда, когда
`integerOnly` равно true. Появилось в версии 1.1.7.
- numberPattern, регулярное выражение, используемое для валидации целых чисел. Используется тогда, когда
`integerOnly` равно false. Появилось в версии 1.1.7.
- `match`: [CRegularExpressionValidator], проверяет, совпадает ли значение с регулярным выражением.
- allowEmpty, может ли значение равняться `null` или быть пустым.
- pattern, регулярное выражение.
- not, инвертировать ли логику валидации. Если значение равно true, то проверяемое значение не должно совпадать
с регулярным выражением. Значение по умолчанию: false. Появилось в версии 1.1.5.
- `required`: [CRequiredValidator], проверяет, что значение не равно `null` и не является пустым.
- requiredValue, значение, которое должен иметь атрибут.
- strict, является ли сравнение строгим: должны совпадать не только значения, но и их тип.
- `safe`: [CSafeValidator], помечает атрибут безопасным для массового присваивания.
- `type`: [CTypeValidator], сверяет тип атрибута с указанным (`integer`, `float`, `string`, `date`, `time`, `datetime`).
Для валидации дат с версии 1.1.7 лучше использовать [CDateValidator].
- allowEmpty, может ли значение равняться `null` или быть пустым.
- dateFormat, формат для валидации дат.
- datetimeFormat, формат для валидации даты и времени.
- timeFormat, формат для валидации времени.
- type, тип данных.
- `unique`: [CUniqueValidator], проверяет значение на уникальность.
- allowEmpty, может ли значение равняться `null` или быть пустым.
- attributeName, имя атрибута класса ActiveRecord, используемое для проверки значения.
- caseSensitive, является ли сравнение регистронезависимым.
- className, имя класса ActiveRecord, используемого для проверки.
- criteria, дополнительный критерий запроса.
- `unsafe`: [CUnsafeValidator], помечает атрибут небезопасным для массового присваивания.
- `url`: [CUrlValidator], проверяет, что значения является верным URL http или https.
- allowEmpty, может ли значение равняться `null` или быть пустым.
- pattern, регулярное выражение, используемое при валидации.
- validSchemes, массив с названиями допустимых схем. Схемы, допустимые по умолчанию: http и https.
Появилось в версии 1.1.7.
- validateIDN, проверять ли URL с IDN (internationalized domain names, интернационализованные доменные имена).
По умолчанию URL содержащий IDN всегда будет неверным (значение false). Появилось в версии 1.1.13.
Это стоит изучить
-----------------
- [Работа с формами → Создание модели](/doc/guide/ru/form.model)
- [CModel::validate()]
- [CModel::rules()]
- [CModel::scenario]
- [CValidator]
- [CInlineValidator]
---
- `Оригинал`: [http://www.yiiframework.com/doc/cookbook/56/](http://www.yiiframework.com/doc/cookbook/56/)
- `Перевод`: Александр Макаров, Sam Dark ([rmcreative.ru](http://rmcreative.ru/))
- `Обсуждение и комментарии`: [http://yiiframework.ru/forum/viewtopic.php?f=8&t=482](http://yiiframework.ru/forum/viewtopic.php?f=8&t=482)