2012-04-22 8 views
0

私はYiiで登録システムを作成しています。そのユーザーは管理者、管理者、スーパーユーザー、モデレータなどのユーザー名を登録できないようにしたいと思います。フォームの検証でこの無効な名前を配列で表示する機会があると良いでしょう。Yiiは無効な文字列を定義します

だから、どんな助け?

答えて

3

登録フォームのカスタムバリデーターを作成することができます。これを行うには、組み込みの方法は、(http://www.yiiframework.com/doc/api/ [ `CRangeValidator`]を使用して、あります

public function rules() { 
    return array(
     array('username', 'my_validation_rule'), 
    ); 
} 

public function my_validation_rule($attribute) { 
    $restricted_usernames = array('admin', 'root', 'superuser'); 
    if(in_array($this->$attribute, $restricted_usernames)) 
     $this->addError($attribute, 'This username is restricted!'); 
} 
+3

:それを行うための最も簡単な方法は、このように、モデルの内側にあります1.1/CRangeValidator)。そのためのルールは 'array( 'username'、 'in'、 'range' => array( 'admin'、 'root'、 'superuser'))'です。 (あなたの解決策は良いですが、大文字と小文字の区別を扱うために自明に拡張することができるので、 'CRangeValidator'はできません)。 – DCoder

関連する問題