1

Kohana 3.1 フレームワークを使用して、Kohana の組み込みクラスORMを使用して簡単な検証を行っています。Validationコードを見てみましょう...

モデルには、次の単純なルールがあります。

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

次に、コントローラーで、クラシックコンストラクトを使用してオブジェクトを検証して保存しようとします。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"
)

これは明らかに真実ではありません。私が間違っていることは何ですか?

4

1 に答える 1

1

それで、あなたはそれをソートしましたか?

それ以外の:

$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();

もう少しクリーンなカットで明示的です。そうすれば、メールが設定されているかどうかについて混乱することはなかったので、他の場所を探し始めることがわかります. ちょっとした考え。

于 2011-08-01T20:32:01.697 に答える