0

私は教義を使用しており、いくつかのモデルを検証しようとしています。

YAML スキーマには次のものがあります。

User:
  package: User
  columns:
    username:
      type: string
      notnull: true
      notblank: true
      minlength: 4
    password:
      type: string
      notnull: true

新しいユーザーを作成すると、与えた値に関係なく、常に検証されます。

例えば:

$testuser = new User();
$testuser->username = '   ';
if ( ! $testuser->isValid()) 
        {
            echo 'User is invalid!';
        }

編集: 上記は単なる例です。スキーマで NOT NULL として指定された値が省略された場合でも、検証されます。

無効なメソッドは生成されません。誰がこれを引き起こしているのか知っていますか? アドバイスをいただければ幸いです。ありがとう。

4

1 に答える 1

3

その理由は、Doctrine によって作成されたモデルに isValid() 関数がないためです。(あなたのモデル/生成された/*.php)

ステップ 1. Doctrine マニュアルを参照してください: これを bootstrap.php または任意の php ファイルのヘッダーに入れる必要があります)

$manager->setAttribute(Doctrine_Core::ATTR_VALIDATE, Doctrine_Core::VALIDATE_ALL);

ステップ 2. モデルのファイルを再構築します。

ステップ 3. これで動作するはずです :)

于 2009-12-18T12:50:21.887 に答える