2012-06-25 3 views
0

Существует вид «main.php», который содержит форму с полями email и name и кнопку отправки. Eveyrthing отлично работает с action_index (код ниже), но мне интересно, как изменить приведенный ниже код, чтобы он проверял правильность ввода электронной почты. Он не должен помещать значения в базу данных, если поле электронной почты недействительно. Я надеюсь, что можно сделать, используя ->rule. Это? Если да, то как добавить подтверждение? (Мне не повезло по-другому).kohana form validation

public function action_index() 
{ 
     if (!empty($_POST)) { 
      $model = ORM::factory('tbl1'); // create 
      $model->values($_POST); // load values to model 

      if ($model->check()) { 
       $model->save(); // save the model 
      } else { 
      //show errors 
      } 
     } 

     $this->response->body(View::factory('main')); 
} 

спасибо.

+0

Вы читали эти руководства? http://kohanaframework.org/3.0/guide/kohana/security/validation и http://docs.kohanaphp.com/libraries/validation –

+0

Да, я прочитал. Во всяком случае, моя проблема еще не решена. – Haradzieniec

ответ

0

rules Использование функции в модели ORM:

public function rules() 
{ 
    return array(
     'email' => array(
      array('email', array(':value')), 
     ), 
    ); 
} 
+0

Спасибо, но я положил его в класс Model_Tbl1, расширяет ORM {} и использовал if ($ model-> rules()) в контроллере вместо if (! Empty ($ _ POST)) и переместил «$ model = ORM :: factory ('tbl1');» before if, но он говорит: «ORM_Validation_Exception [0]: не удалось проверить массив». Что я делаю не так? Спасибо. – Haradzieniec

+0

Ничего, вам просто нужно поймать исключение в блоке catch try и показать ошибку пользователю :) – matino