Сообщение об ошибках для проверки - PullRequest
3 голосов
/ 02 июня 2011

Я работаю над системой авторизации для Kohana.Я делаю это только для образования ...

Вот так выглядит мой контроллер, который проверяет отправленные поля:

$validation =
  Validation::factory( $_POST )
    ->rule( 'username', 'not_empty' )
    ->rule( 'username', 'max_length', array( ':value', 32 ) )
    ->rule( 'username', 'alpha_dash', array( ':value', true ) )
    ->rule( 'password', 'not_empty' )
    ->rule( 'password', 'min_length', array( ':value', 6 ) )
    ->rule( 'password', 'max_length', array( ':value', 255 ) )
    ->rule( 'passwordRepeatedly', 'not_empty' )
    ->rule( 'passwordRepeatedly', 'matches', array( ':validation', 'passwordRepeatedly', 'password' ) )
    ->rule( 'email', 'not_empty' )
    ->rule( 'email', 'email' );

Я ищу способ отображения другого сообщения об ошибке длякаждое добавленное правило.Моя цель - передать (один или все (если происходит)), чтобы просмотреть и отобразить их там.

Псевдокод:

errorFor( 'username', 'not_empty' ) => 'Username is required! Try again...';

Как определить разные ошибки для каждого правила?Я не могу найти ничего понятного для меня в документах ...

Ответы [ 2 ]

2 голосов
/ 02 июня 2011

У вас есть:

$validation = ...

Итак, сначала вы должны проверить, проходят ли проверки переменные:

if($validation->check()) 
{
  // no errors
}
else
{
    $errors = $validation->errors('user');
}

Затем вы должны иметь файл user.php в приложение / сообщения

<?php defined('SYSPATH') or die('No direct script access.');

  return array
  (
     'input_name' => array
     (
        'rule' => 'your message',
        'default' => 'default message'
     ),
     'username' => array
     (
        'not_empty' => 'your message',
        'max_length' => 'your message',
        'alpha_dash' => 'your message',
        'default' => 'default message'
     ),

  );

?>

Для отображения ошибок:

foreach($errors as $input_field => $message) 
    echo $message;
0 голосов
/ 02 июня 2011

В правилах проверки используется папка messages в каталоге приложения.

Проверьте это: http://kohanaframework.org/3.1/guide/orm/examples/validation для полного примера проверки, где файл сообщений находится в самом низу.страницы.

Следует отметить каталог и имя файла файла сообщения.

В KO3.1 (я считаю,) Валидация выдает исключение всякий раз, когда происходит сбой.Если вы поймаете его с помощью catch (ORM_Validation_Exception $e), вы можете использовать $e->errors('some_directory') для перехвата сообщений об ошибках, которые затем извлекаются из messages/some_directory/model_name.php в виде массива, как в примере по ссылке выше.

...