从几小时开始我就试图找出问题所在:
- >我有一个Yii表格看起来像这样:
public function rules()
{
return array(
// username and password are required
array('IBAN, BIC, amount, payment_id, email', 'required'),
array('payment_id', 'numerical', 'integerOnly'=>true),
array('email', 'email'),
array('amount', 'numerical', 'min'=>10)
);
}
然后我的控制器规则定义如下:
array('amount', 'numerical', 'min'=>10)
我的目标是禁止价值低于' 10'
**我已经尝试了**
真正奇怪的是所有其他规则,例如' required'和错误的电子邮件字段,没有@ letter等。工作真的很棒,所以表单和规则之间的联系正在起作用大。该测试成功
当我尝试输入一封信时,例如" A"进入我的数量字段,我得到imediatley红色HTML5错误(完美,工作也很好)
但是当我尝试输入一个小于10的数字用于检验1 - >然后我没有得到任何错误(第一个奇怪的事情)和下一个大问题是,提交后,我只得到一个空白的白页回来:(
我也在这里添加了这个" enableClientValidation' => true"我的表格代码(也没有成功)
然后我还尝试将一些验证规则直接实现到yii表单元素中 这里:
$ form-> textField($ model,' amount',array( '类' => '表单控件名称字段', '占位符' => $模型 - > getAttributeLabel('量&#39), '类型' => '数&#39 ;, '分钟' => ' 10'
- >也没有成功!
疯狂的事情是当我删除我的
array('amount', 'numerical', 'min'=>10)
排除我的规则块,提交重定向过程效果很好!但是那时我的数字少于10,因为" min = 10规则"去掉了。 BUT
当我再次将此行添加到我的规则
时{{1}}
然后我进入" 1"进入金额字段然后提交表格,yii只显示白页!
所以yii正在认识到,我输入了一个错误的值,但只显示了一个白页
我真的不知道问题是什么:(
你能不能给我一些提示?!?
非常感谢您的帮助!
编辑: 好的,我已经发现,问题是在我的控制器中我的 $模型 - >验证() 是不正确的,这就是为什么整个脚本都会被跳过...我会再次检查所有内容,并尽快给出反馈。
答案 0 :(得分:0)
我找到了我的错误!
事实是,我的规则/验证部分一直在完美地工作!白页凸轮只在我的控制器中有,如果这样的块定义了:if(validation){
// do great stuff
}
但没有定义!验证部分,这就是为什么在提交无效值之后,我只得到一个空的白色空白页;)
所以如果将来有人会遇到类似的问题!
检查您的控制器,如果您已定义2个案例
成功案例(验证部分还可以) 错误情况(验证部分无效)
然后您可以重定向到同一页面,让用户知道类似
的内容“您输入的金额无效。最低金额为10.00 $”
通过设置一些Yii错误并将其显示在用户输入错误金额的文本字段附近的同一页面上...
我现在这样做了:
if($_POST['WithdrawalRequestForm']['amount'] < 10){
Yii::app()->user->setFlash('error', "Please enter a wihtdraw amount with at aleast 10.00 €");
$this->redirect('withdrawalRequest');
}
希望这也有助于其他民族! ;)