1

Kohana ORMでモデルを検証する際に問題が発生しました。これは、ORM_Validation_Exceptionをスローするはずですが、そうではありません。メールアドレスを検証しようとしています。

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

この例では、エラーのある配列を画面にダンプする必要がありますが、代わりに、通知なしに電子メールアドレスを保存するだけです。

'Valid ::email'を'not_empty'に変更すると、例外がスローされます。デバッグを行った後、Valid::emailがfalseを返すことを発見しました。

編集:一部の人々が述べたように、「Valid::email」を「email」に変更しても役に立ちません。また、emailメソッド内にexitを配置すると、スクリプトの実行が停止します。

4

2 に答える 2

1

かなり重いデバッグを行った後、Kohana検証クラスにphp5.3.3と組み合わせたバグが含まれていることを発見しました。動作するはずですが、動作しません。

Kohana_Validation :: check()で

変化する

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

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

Kohana_Validation :: errors()で

変化する

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

':value' => Arr::get($this->_data, $field),
于 2012-04-11T09:04:13.387 に答える
0

おっと..使用法だけはどうですか?

 'email' insert  'Valid::email'

より良い使用法save()メソッド:)

于 2012-04-10T12:45:40.853 に答える