В Kohana 3 можно ли условно проверять поля, только если они установлены в $ _POST? - PullRequest
0 голосов
/ 28 января 2011

Обычно вы можете использовать такой код для проверки входящих данных:

$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 ... */ ); 
}

Что такое путь Кохана?

1 Ответ

1 голос
/ 28 января 2011

not_empty будет только гарантировать, что значение не пустое (пустой массив, null, false, '' - больше похоже на! Empty () как функция, а не как lang. Конструкция).

Вы можете сделать это вручную (как вы предложили), хотя обратный вызов кажется более приемлемым решением в вашем случае (который будет проверять ваши условия, действительно ли он должен быть $ _POST, может быть, вы хотите проверить эти ключи / условия и для других массивов?).

...