編集:検証ルールで独自の関数を使用する-ルールでは、このような属性で関数を指定します-
array('username','checkuniquename'),
次に、同じモデルで関数ロジックを次のように定義します。
public function checkuniqueemail($attribute)
{
$record=Users::model()->findByAttributes(array($attribute=>$this->email));
if($record!==null)
$this->addError($attribute, 'This email has been already taken please choose a different one');
}
Yii モデルでは、単一の属性に対して複数の検証規則を定義できます。
return array(
array('contact_no','numerical', 'integerOnly'=>true),
array('contact_no','length', 'min'=>8 ),
array('name, contact_no', 'required'),
array('name, contact_no', 'length', 'max'=>255),
array('password','pattern'=>'/^[A-Za-z0-9_!@#$%^&*()+=?.,]+$/u', 'message'=>'Spaces or given characters are not allowed'),
);
モデルで指定できる多くの検証があります。