<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0">
<channel>
<title>CakePHP - Manual/CommonTasks/DataValidation/OneRulePerField</title>
<link>http://cake-php.ru/wiki/Manual/CommonTasks/DataValidation/OneRulePerField</link>
<description>History/revisions of CakePHP/Manual/CommonTasks/DataValidation/OneRulePerField</description>
<language>en-us</language>
<item>
<title>2009-03-31 23:10:35</title>
<link>http://cake-php.ru/wiki/Manual/CommonTasks/DataValidation/OneRulePerField/show?time=2009-03-31+23%3A10%3A35</link>
<description>&lt;div class="pageBefore">&lt;img src="http://cake-php.ru/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a name=".manual.commontasks.datavalidation.oneruleperfield" href="http://cake-php.ru/wiki/Manual/CommonTasks/DataValidation/OneRulePerField" class="">/Manual&amp;nbsp;/&amp;nbsp;Common&amp;nbsp;Tasks&amp;nbsp;/&amp;nbsp;Data&amp;nbsp;Validation&amp;nbsp;/&amp;nbsp;One&amp;nbsp;Rule&amp;nbsp;Per&amp;nbsp;Field&lt;/a> за &lt;a href="http://cake-php.ru/wiki/Manual/CommonTasks/DataValidation/OneRulePerField?time=2009-03-31+23%3A10%3A35">2009-03-31 23:10:35&lt;/a> и &lt;a href="http://cake-php.ru/wiki/Manual/CommonTasks/DataValidation/OneRulePerField">2009-04-01 17:11:27&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">&lt;a name="h877-1">&lt;/a>&lt;h3>on&lt;/h3>
Индексу 'on' может быть присвоено одно из&amp;nbsp;следующих значений: 'update' или&amp;nbsp;'create'. Это&amp;nbsp;предоставляет механизм, который позволяет применять определенное правило или&amp;nbsp;во&amp;nbsp;время создания новой записи, или&amp;nbsp;во&amp;nbsp;время обновления.&lt;br />
Если правило определено с&amp;nbsp;'on' =&amp;gt; 'create', то&amp;nbsp;оно будет применено во&amp;nbsp;время создания новой записи. Подобным образом, если определено 'on' =&amp;gt; 'update', то&amp;nbsp;правило будет выполняться во&amp;nbsp;время обновления записи.&lt;br />
Значения по&amp;nbsp;умолчанию для&amp;nbsp;'on' &amp;ndash; null. Т.е. правило будет действовать в&amp;nbsp;обоих случаях: во&amp;nbsp;время создания записи и&amp;nbsp;во время обновления.&lt;a name="h877-2">&lt;/a>&lt;h3>message&lt;/h3>
Индекс 'message' позволяет вам&amp;nbsp;определить собственное сообщение об&amp;nbsp;ошибке валидации для&amp;nbsp;правила:&lt;br />
&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">&lt;div class="indent">'rule' =&amp;gt; array('minLength', 8),&lt;br />
'message' =&amp;gt; 'Длина пароля должна быть не&amp;nbsp;менее 8 символов'&lt;/div>&lt;/div>&lt;/div>&lt;/div>
&lt;span class="missingpage">&amp;lt;&amp;lt; Простые правила&lt;/span>&lt;a href="http://cake-php.ru/wiki/SimpleRules/edit?add=1" title="Создать эту страницу">?&lt;/a> | &lt;span class="missingpage">Множество правил для&amp;nbsp;поля &amp;gt;&amp;gt;&lt;/span>&lt;a href="http://cake-php.ru/wiki/MultipleRules/edit?add=1" title="Создать эту страницу">?&lt;/a>&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2009-03-31 23:09:02</title>
<link>http://cake-php.ru/wiki/Manual/CommonTasks/DataValidation/OneRulePerField/show?time=2009-03-31+23%3A09%3A02</link>
<description>&lt;div class="pageBefore">&lt;img src="http://cake-php.ru/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://cake-php.ru/wiki/Manual/CommonTasks/DataValidation/OneRulePerField" class="">/Manual&amp;nbsp;/&amp;nbsp;Common&amp;nbsp;Tasks&amp;nbsp;/&amp;nbsp;Data&amp;nbsp;Validation&amp;nbsp;/&amp;nbsp;One&amp;nbsp;Rule&amp;nbsp;Per&amp;nbsp;Field&lt;/a> за &lt;a href="http://cake-php.ru/wiki/Manual/CommonTasks/DataValidation/OneRulePerField?time=2009-03-31+23%3A09%3A02">2009-03-31 23:09:02&lt;/a> и &lt;a href="http://cake-php.ru/wiki/Manual/CommonTasks/DataValidation/OneRulePerField?time=2009-03-31+23%3A10%3A35">2009-03-31 23:10:35&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">Если индекс 'login' представлен, но&amp;nbsp;сопутствующее значение пустое, &lt;br />
то&amp;nbsp;валидация пройдет успешно. 'required' =&amp;gt; true контролирует только наличие индекса поля.&lt;/div>&lt;br />
&lt;b>Удалено:&lt;/b>&lt;br />
&lt;div class="deletions">Если индекс 'login' представлен, но&amp;nbsp;сопутствующее значение пустое, то&amp;nbsp;валидация пройдет успешно. 'required' =&amp;gt; true контролирует только наличие индекса поля.&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2009-03-31 22:35:46</title>
<link>http://cake-php.ru/wiki/Manual/CommonTasks/DataValidation/OneRulePerField/show?time=2009-03-31+22%3A35%3A46</link>
<description>&lt;div class="pageBefore">&lt;img src="http://cake-php.ru/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://cake-php.ru/wiki/Manual/CommonTasks/DataValidation/OneRulePerField" class="">/Manual&amp;nbsp;/&amp;nbsp;Common&amp;nbsp;Tasks&amp;nbsp;/&amp;nbsp;Data&amp;nbsp;Validation&amp;nbsp;/&amp;nbsp;One&amp;nbsp;Rule&amp;nbsp;Per&amp;nbsp;Field&lt;/a> за &lt;a href="http://cake-php.ru/wiki/Manual/CommonTasks/DataValidation/OneRulePerField?time=2009-03-31+22%3A35%3A46">2009-03-31 22:35:46&lt;/a> и &lt;a href="http://cake-php.ru/wiki/Manual/CommonTasks/DataValidation/OneRulePerField?time=2009-03-31+23%3A09%3A02">2009-03-31 23:09:02&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">Индекс 'rule' определяет метод валидации и&amp;nbsp;принимает или&amp;nbsp;отдельное значение, или&amp;nbsp;массив. Значением 'rule' может быть имя&amp;nbsp;метода модели, метода встроенного класса Validation, или&amp;nbsp;регулярное выражение. Полный перечень всех встроенных правил смотрите в&amp;nbsp;главе &amp;laquo;Встроенные правила валидации&amp;raquo;.&lt;br />
Если правило не&amp;nbsp;требует параметров, то&amp;nbsp;'rule' может содержать просто одно значение, например:&lt;br />
&lt;div class="indent">&lt;div class="indent">'login' =&amp;gt; array(&lt;br />
&lt;div class="indent">&lt;div class="indent">'rule' =&amp;gt; 'alphaNumeric'&lt;/div>&lt;/div>&lt;/div>&lt;/div>
Если правило требует некоторые параметры (подобные max, min&amp;nbsp;или range), то&amp;nbsp;'rule' должно быть массивом:&lt;br />
&lt;div class="indent">&lt;div class="indent">'password' =&amp;gt; array(&lt;br />
&lt;div class="indent">&lt;div class="indent">'rule' =&amp;gt; array('minLength', 8)&lt;/div>&lt;/div>&lt;/div>&lt;/div>
Помните, что&amp;nbsp;индекс 'rule' требуется для&amp;nbsp;определения правил на&amp;nbsp;основе массивов.&lt;a name="h877-1">&lt;/a>&lt;h3>required&lt;/h3>
Этому индексу должно быть присвоено значение типа boolean. Если 'required' =&amp;gt; true, то&amp;nbsp;поле должно быть представлено в&amp;nbsp;массиве данных. Например, если правило валидации определено таким образом:&lt;br />
&lt;div class="indent">&lt;div class="indent">'login' =&amp;gt; array(&lt;br />
&lt;div class="indent">&lt;div class="indent">'rule' =&amp;gt; 'alphaNumeric',&lt;br />
'required' =&amp;gt; true&lt;/div>&lt;/div>&lt;/div>&lt;/div>
Тогда данные, посланные методу save() должны содержать данные для&amp;nbsp;поля 'login'. Если это&amp;nbsp;не&amp;nbsp;так, то&amp;nbsp;валидация не&amp;nbsp;будет пройдена. Значение по&amp;nbsp;умолчанию для&amp;nbsp;этого индекса &amp;ndash; false.&lt;br />
Если индекс 'login' представлен, но&amp;nbsp;сопутствующее значение пустое, то&amp;nbsp;валидация пройдет успешно. 'required' =&amp;gt; true контролирует только наличие индекса поля.&lt;a name="h877-2">&lt;/a>&lt;h3>allowEmpty&lt;/h3>
Индексу allowEmpty должно быть присвоено значения типа boolean. Если true, то&amp;nbsp;правило валидации будет пропущено, когда значение пустое.&lt;br />
Значение по&amp;nbsp;умолчанию &amp;ndash; false, таким образом, правило будет выполняться (это не&amp;nbsp;значит, что&amp;nbsp;валидация не&amp;nbsp;будет пройдена для&amp;nbsp;пустого значения; если определено правило принимать пустые значения, как&amp;nbsp;правильные, то&amp;nbsp;ошибка проверки данных не&amp;nbsp;будет генерироваться).&lt;/div>&lt;/div>
</description>
</item>
<item>
<title>2009-03-25 16:03:54</title>
<link>http://cake-php.ru/wiki/Manual/CommonTasks/DataValidation/OneRulePerField/show?time=2009-03-25+16%3A03%3A54</link>
<description>&lt;div class="pageBefore">&lt;img src="http://cake-php.ru/wiki/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" />&lt;/div>&lt;div class="page">
&lt;b>Сравнение версий &lt;a  href="http://cake-php.ru/wiki/Manual/CommonTasks/DataValidation/OneRulePerField" class="">/Manual&amp;nbsp;/&amp;nbsp;Common&amp;nbsp;Tasks&amp;nbsp;/&amp;nbsp;Data&amp;nbsp;Validation&amp;nbsp;/&amp;nbsp;One&amp;nbsp;Rule&amp;nbsp;Per&amp;nbsp;Field&lt;/a> за &lt;a href="http://cake-php.ru/wiki/Manual/CommonTasks/DataValidation/OneRulePerField?time=2009-03-25+16%3A03%3A54">2009-03-25 16:03:54&lt;/a> и &lt;a href="http://cake-php.ru/wiki/Manual/CommonTasks/DataValidation/OneRulePerField?time=2009-03-31+22%3A35%3A46">2009-03-31 22:35:46&lt;/a>&lt;/b>&lt;br />
&lt;br />
&lt;b>Добавлено:&lt;/b>&lt;br />
&lt;div class="additions">Этот способ определения позволяет лучше контролировать работу правил валидации. Но&amp;nbsp;перед тем, как&amp;nbsp;мы&amp;nbsp;обсудим это, давайте посмотрим на&amp;nbsp;образец добавления правила для&amp;nbsp;отдельного поля:  &lt;br />
&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;span style="color: #000000">
&lt;span style="color: #0000BB">&amp;lt;?&lt;br />&lt;/span>&lt;span style="color: #007700">var&amp;nbsp;&lt;/span>&lt;span style="color: #0000BB">$validate&amp;nbsp;&lt;/span>&lt;span style="color: #007700">=&amp;nbsp;array(&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'fieldName1'&amp;nbsp;&lt;/span>&lt;span style="color: #007700">=&amp;gt;&amp;nbsp;array(&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'rule'&amp;nbsp;&lt;/span>&lt;span style="color: #007700">=&amp;gt;&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'ruleName'&lt;/span>&lt;span style="color: #007700">,&amp;nbsp;&lt;/span>&lt;span style="color: #FF8000">//&amp;nbsp;или:&amp;nbsp;array('ruleName',&amp;nbsp;'param1',&amp;nbsp;'param2'&amp;nbsp;...)&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'required'&amp;nbsp;&lt;/span>&lt;span style="color: #007700">=&amp;gt;&amp;nbsp;&lt;/span>&lt;span style="color: #0000BB">true&lt;/span>&lt;span style="color: #007700">,&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'allowEmpty'&amp;nbsp;&lt;/span>&lt;span style="color: #007700">=&amp;gt;&amp;nbsp;&lt;/span>&lt;span style="color: #0000BB">false&lt;/span>&lt;span style="color: #007700">,&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'on'&amp;nbsp;&lt;/span>&lt;span style="color: #007700">=&amp;gt;&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'create'&lt;/span>&lt;span style="color: #007700">,&amp;nbsp;&lt;/span>&lt;span style="color: #FF8000">//&amp;nbsp;или:&amp;nbsp;'update'&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'message'&amp;nbsp;&lt;/span>&lt;span style="color: #007700">=&amp;gt;&amp;nbsp;&lt;/span>&lt;span style="color: #DD0000">'Ваше&amp;nbsp;сообщение&amp;nbsp;об&amp;nbsp;ошибке'&lt;br />&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span>&lt;span style="color: #007700">)&lt;br />);&lt;br />&lt;/span>&lt;span style="color: #0000BB">?&amp;gt;&lt;/span>
&lt;/span>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;br />
&lt;!--notypo-->&lt;div class="code">&lt;code>&lt;span style="color: #000000">
Индекс&amp;nbsp;'rule'&amp;nbsp;обязателен.&amp;nbsp;Если&amp;nbsp;вы&amp;nbsp;установите&amp;nbsp;только&amp;nbsp;'required'&amp;nbsp;=&amp;gt;&amp;nbsp;true,&amp;nbsp;то&amp;nbsp;валидация&amp;nbsp;&lt;br />не&amp;nbsp;будет&amp;nbsp;корректно&amp;nbsp;функционировать.&amp;nbsp;Это&amp;nbsp;потому,&amp;nbsp;что&amp;nbsp;'required'&amp;nbsp;не&amp;nbsp;является&amp;nbsp;правилом.&lt;/span>
&lt;/code>&lt;/div>&lt;!--/notypo-->&lt;br />
Как&amp;nbsp;вы&amp;nbsp;видите, каждое поле (в данном случае показано только одно поле) ассоциируется с&amp;nbsp;массивом, который содержит пять индексов: 'rule', 'required', 'allowEmpty', 'on' и&amp;nbsp;'message'. Давайте ближе познакомимся с&amp;nbsp;этими индексами.&lt;br />
&lt;hr noshade="noshade" size="1" />&lt;a name="h877-1">&lt;/a>&lt;h3>rule&lt;/h3>&lt;/div>&lt;/div>
</description>
</item>
</channel>
</rss>
