2012-04-22 50 views
0

我在Yii中創建註冊系統,我希望人們無法註冊用戶名,如管理員,管理員,超級用戶,主持人......那麼你能告訴我如何做到這一點嗎?如果在表單驗證中有一些機會將這些無效名稱列入數組,那將會更好。Yii定義無效字符串

那麼,有什麼幫助嗎?

回答

3

您可以爲註冊表單創建自定義驗證器。要做到這一點最簡單的方法是你的模型像這裏面:

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

有一個內置的方式做到這一點,使用['CRangeValidator'](http://www.yiiframework.com/doc/api/ 1.1/CRangeValidator)。對它的規則如下所示:'array('username','in','range'=> array('admin','root','superuser'))''。 (雖然你的解決方案更好,因爲它可以平凡地擴展以處理區分大小寫,但CRangeValidator不能)。 – DCoder 2012-04-22 13:06:13