2

URLのフォームフィールドを検証したい。フィールドのデフォルトをhttp://に設定しました。ユーザーがURLを入力せず、http://を離れると、無効なURLと表示されます。URLは必須ではないため、http://のみの場合は、エラーメッセージは表示されません。その人がURLとしてhttp://を送信した場合、どうすれば無視させることができますか?

ありがとう

4

1 に答える 1

3

http://は有効なURLではないため、とにかく許可したい場合は2つのオプションがあります

  1. カスタム検証ルールを作成します。これは、実際のURL + http://に対してtrueを返します。
  2. before validateコールバックを使用し、それがhttp://の場合は、urlフィールドを空白に設定します。

それが役立つことを願っています

編集

私は忘れました:あなたは必須を設定する必要はありませんが'allowEmpty' => true

必須->フォームには、サーバーに送信されるフィールドxyzが含まれている必要があります

allowEmpty- >フィールドが空白の場合があります


上記のコールバック関数へのリンクを追加しましたが、とにかく..ここにあります:

あなたのモデルクラスで(私はそれがそうだと思いますUser):

class User extends AppModel {
    ..

    function beforeValidate() {
        if (isset($this->data['User']['url']) && $this->data['User']['url'] == 'http://') {
            $this->data['User']['url'] = '';
        }
        return true;
    }
    ..
}

于 2011-01-24T15:54:15.323 に答える