我的Yii版本:1.1.13。
我对同一个字段使用两个规则。
public function rules() {
return array(
array('data_preenchimento', 'required'),
array('data_preenchimento', 'type', 'type'=>'date', 'dateFormat'=>'dd/MM/yy'),
当元素失去焦点时,如果它为空,则可以看到“必需”规则。但如果它的值与格式规则有任何不同,例如“894089095”,则没有任何反应。
我还尝试将格式规则更改为:
array('data_preenchimento', 'type', 'type'=>'date', 'message'=>'the date is not valid.', 'dateFormat'=>'dd/MM/yy'),
和
array('data_preenchimento', 'date', 'format'=>'dd/MM/yy'),
注意:窗口小部件将这些属性设置为true:
$form = $this->beginWidget('CActiveForm', array(
'id'=>'questionario-form',
'action'=>Yii::app()->createUrl('//questionario/index'),
'enableAjaxValidation'=>false,
'enableClientValidation'=>true,
'clientOptions'=>array(
'validateOnSubmit'=>true,
'validateOnChange'=>true,
),
'htmlOptions' => array('enctype' => 'multipart/form-data'),
));
更新:下面是我的rules()
:
public function rules()
{
return array(
array('pais_de_origem,data_preenchimento,conhecimento_regiao,motivos_visita,aspectos_interesse,vim_de,vou_para', 'required'),
array('data_preenchimento', 'date', 'format'=>'dd/MM/yyyy', 'message'=>'A data deve ter o formato dd/mm/aaaa.', 'allowEmpty'=>false),
array('motivos_visita', 'verificarLimiteDeMotivosDaVisita'),
array('aspectos_interesse', 'verificarLimiteDeAspectosDeInteresse'),
array('quais_conhecimento_regiao', 'verificarQuaisConhecimentoDaRegiao'),
array('quais_motivos_visita', 'verificarQuaisMotivosDaVisita'),
array('quais_aspectos_interesse', 'verificarQuaisAspectosDeInteresse'),
array('quais_factores', 'verificarQuaisFactores'),
array('factores_outros,sites_conhecimento_regiao,facilidade_conhecimento_regiao', 'safe'),
);
}
为什么Yii不能在这种情况下使用规则?我该如何解决?
答案 0 :(得分:1)
这是控制器中的一个问题。几天前我改变了收到输入的模型,但是我忘了在Controller中更改它,所以我用isset()
验证了$_POST
中不存在的东西。现在一切都很完美。