2011-07-24 10 views
1

私は、Kohanaの3.132フレームワークを使用して、KohanaのORMValidationのクラスを組み込んだ簡単な検証を行っています。その後、コントローラに私は検証しようとクラシックtry ... catchコンストラクトでオブジェクトを保存Kohanaを使用して電子メールを検証する方法3.1 ORM

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

:私はこれらの単純なルールを持っているモデルで

...のコードを見てみましょう:

try 
{ 
    $t = array(
     'first_name'=>'pippo', 
     'email'=>'[email protected]', 
    ); 

    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" 
) 

これは、明らかに私が間違ってやっている真実ではないのですか?

+0

私は関係側で間違っていましたが、実際にはフィールド '電子メール列は外国関連のテーブルにありました。私はまだリンクしていません。 – gpasci

答えて

1

ソートしてもらえませんか?

の代わり:

$t = array(
    'first_name'=>'pippo', 
    'email'=>'[email protected]', 
); 

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

あなたがしようとしない理由:

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

$customer->first_name = 'pippo'; 
$customer->email = '[email protected]'; 

$customer->save(); 

そのもう少しきれいにカットして明示的に。それでは、電子メールが設定されているかどうかについて一切の混乱はありませんでした。 ちょっと考えました。

関連する問題