我在視圖中使用自定義的驗證模型Yii的自定義驗證
class RegisterForm extends CFormModel
{
public $codiceMembro;
//...some more attributes
//validation
public function rules()
{
return array(
array('codiceMembro', 'codiceODataNascita'),
//...some more rules
);
}
// Declares attribute labels.
public function attributeLabels()
{
return array(
'codiceMembro'=>"a description",
//...some more labels
);
}
//My own custom validate function, always error for it
public function codiceODataNascita($attribute, $params){
$this->addError('codiceMembro','a bad message');
}
//...other model stuff
}
然後,我在這裏是如何插入模型
<?php
$model=new RegisterForm;
$form=$this->beginWidget('CActiveForm', array(
'id'=>'register-form',
'enableClientValidation'=>true,
'clientOptions'=>array(
'validateOnSubmit'=>true,
),
));
?>
<div class="row">
<?php echo $form->label($model, 'codiceMembro'); ?>
<?php echo $form->textField($model, 'codiceMembro');?>
<?php echo $form->error($model,'codiceMembro'); ?>
</div>
//...so on till the end of the code
我想到的是,無論我型,我得到如果你想的錯誤消息
而是這個代碼一切都驗證爲OK
你正在按提交按鈕,並在你的控制器中調用validate方法嗎?驗證器必須支持客戶端驗證才能使用它,並且我不知道模型中的自定義驗證器是否可以執行此操作。 – jmarkmurphy
不,我想在填寫表單時驗證值......特別是我必須檢查是否填充了某個特定字段或其他字段。但是你的評論讓我懷疑,我想要做的事情是客戶端驗證。 – gopal