Как проверить электронную почту с помощью Kohana 3.1 ORM - PullRequest
1 голос
/ 24 июля 2011

Я использую инфраструктуру Kohana 3.1 для простой проверки с использованием встроенных классов Kohana ORM и Validation. Давайте посмотрим код ...

В модели у меня есть следующие простые правила:

public function rules()
{
  return array(
    'first_name' => array(
      array('not_empty'),
    ),
    'email' => array(
      array('not_empty'),
      array('email'),
    ),
  );
}

затем в контроллере I попытайтесь проверить и сохранить объект с классической try ... catch конструкцией:

try
{
    $t = array(
        'first_name'=>'pippo',
        'email'=>'foo@foo.com',
    );

    ORM::factory('customer')->values($t)->save();

}
catch ( ORM_Validation_Exception $e )
{
    die(Debug::vars($e->errors('')));
}

Теперь приведенный выше массив $t должен проверяться, но это не так. Вместо этого он генерирует исключение и умирает, вызывая Debug::vars и печатая эту ошибку:

array(1) (
    "email" => string(23) "email must not be empty"
)

Это явно не так, что я делаю не так?

1 Ответ

1 голос
/ 02 августа 2011

Так вы отсортировали это или нет?

вместо:

$t = array(
  'first_name'=>'pippo',
  'email'=>'foo@foo.com',
);

ORM::factory('customer')->values($t)->save();

почему бы вам не попробовать:

$customer = ORM::factory('customer');

$customer->first_name = 'pippo';
$customer->email = 'foo@foo.com';

$customer->save();

Это немного большечистый срез и явный.Тогда у вас никогда не возникало путаницы в отношении того, была ли установлена ​​электронная почта, поэтому вы знаете, где начать искать другое место.Просто мысль.

...