2012-04-10 23 views
1

Kohana ORMでモデルの検証に問題がありますが、ORM_Validation_Exceptionがスローされるはずです。私はemailaddressを検証しようとしています。モデル値を検証しても例外がスローされない

Model_Emailaddress

public function rules() 
{ 
    return array(
     'emailaddress' => array(
      array(
       'Valid::email' 
      ), 
     ), 
    ); 
} 

Controller_Test

public function action_valid() 
    { 
     $email = ORM::factory('emailaddress'); 

     $email->emailaddress = 'test'; 

     try 
     { 
      $email->create(); 

     } 
     catch(ORM_Validation_Exception $e) 
     { 
      echo Debug::dump($e->errors()); 
     } 
    } 

この例では、画面にエラーのある配列をダンプするべきではなく、それだけで、さらに通知することなくEMAILADDRESSを節約します。

「有効::メール」を「not_empty」に変更すると、例外がスローされます。いくつかのデバッグの後、私はValid :: emailがfalseを返すことを発見しました。

EDIT:「有効な::電子メール」を「電子メール」に変更することは役に立ちません。また、メールメソッドの中にexitを置くと、スクリプトの実行が停止します。どのようにだけ使用状況に関する

答えて

1

保存

'email' insert 'Valid::email' 

よりよい使い方PHP 5.3.3。それはうまくいくはずですが、そうではありません。

Kohana_Validation ::チェック()

変更

$data[$field] = Arr::get($this, $field); 

Kohana_Validation ::エラーで

$data[$field] = Arr::get($this->_data, $field); 

()

に変更することで

':value' => Arr::get($this, $field), 

':value' => Arr::get($this->_data, $field), 
0

OOP ..:私はKohanaの検証クラスは、との組み合わせでバグが含まれていることを発見したいくつかの重い、重いデバッグ後()メソッド:)

+0

するために、このソリューションは動作しません。 – LHolleman

関連する問題