2012-02-15 10 views
0

シナリオには、ユーザ名を入力とするフォームがYiiプロジェクトにあり、受信していない場合はアクティベーションリンクを含むメールが送信されます。フォーム名はCFormModelクラスを拡張するResendActivationLinkFormです。投稿時刻に私はユーザ名がAJAXを使ってデータベースに存在するかどうかをチェックしたいと思います...これを達成するためにyiiの独自のクラスと関数を使用するには?ayaxを使用しているYiiフレームワークのユーザ名

答えて

1

もおかげで、私は単純な方法でそれを得ました。 は、私はちょうど

public function run(){ 
return array(
..... 
..... 
array('username','exist','className'=>'User'), 
); 
} 

ユーザ名は私たattributeName存在している

バリエイリアスと classNameのです例えば、私のルールを..描いた形モデルResendActivationLinkForm内部の配列を追加しましたは、モデル名クラスの です。

詳細はhttp://www.yiiframework.com/wiki/56/をご覧ください。 :)ハッピーコーディング。 :)

0

Usermodelがusername属性を持つモデルである場合、このようなことができます。様々なCActiveRecord方法は、私がこのような配列(「ユーザ名」、「UsernameExistsValidator」)として、カスタムバリデータでフォームのモデルを拡張したいwebsite

0

をご確認の詳細については

if(Usermodel::model()->findByAttributes(
          array(), 
          'username = :inputtedUsername', 
          array(':inputtedUsername' => $_POST['username'],))) 
{ 
//user found  
}else{ 
//user not found 
} 

。このバリデータクラスは、CValidatorを拡張し、ユーザ名が利用できない場合に$ this-> addError()を使用してフラグを立てるpublic関数validateAttribute($ object、$ attribute)を実装する必要があります。その中のビットにもう少し詳しい入力が必要な場合は、他のYiiバリデータのソースを参照してください。 replies..butため

validateAttributeに収まるように上記の回答からロジック、

関連する問題