我正在使用Yii框架,我有3个输入用于电话号码。我把它分成这种格式(XXX-XXX-XXXX) 每次按分数除以输入 我想在用户更改/传递所有3个字段后验证它,如果它无效则给出一条错误消息。 我想用相同的顺序保存它并将其拆分回相同的格式。
这是我的代码示例。
<?php echo $form->labelEx($model,'phone'); ?>
<?php echo $form->textField($model,'phone[0]'); ?>
<?php echo $form->textField($model,'phone[1]'); ?>
<?php echo $form->textField($model,'phone[2]'); ?>
我该怎么做?
答案 0 :(得分:1)
您可以在控制器上验证输入,并在需要时添加错误:
// ...
$validator = new CRegularExpressionValidator;
$validator->pattern = '/^[0-9]{3}\-[0-9]{3}\-[0-9]{3}/';
if ( !$validator->validate( $model->phone[0] ) ) // Do this for all of your phone fields!
{
// add error if not added yet: $model->addError( ... );
}
if ( $model->validate( null, false ) ) // notice the 2nd argument!
{
// ...
}
或者您可以在模型类中使用完全相同的代码定义自己的验证器(这是我认为更好的选项)。