Обычно вы можете использовать такой код для проверки входящих данных:
$post = Validate::factory($_POST);
$post->rules('field_name', array(
'not_empty' => null, // Must be non-empty.
'regex' => '/\d+/' // Must be a digit.
));
[Да, я знаю, чтобы переместить правила проверки поля в модель]
В этом конкретном случаеЯ хотел бы проверить только определенные поля, только если они действительно присутствовали в данных $ _POST.
Достигается ли это простым пропуском правила not_empty
, или же правило regex
(в данном случае) все еще не будет выполнено и не пройдет проверку?(мое предположение).
Похоже, что это может решить проблему (еще не пытался), но мне интересно, является ли это наилучшей практикой в этом случае, или это будет "правильный путь" ...
$post->rules( /*... some rules I always want... */ );
if (isset($_POST['field_name'])) {
$post->rules( /* ... conditionally applied rules ... */ );
}
Что такое путь Кохана?