Kar*_*arl 3 php validation laravel
我有一个输入字段需要为空,否则我希望验证失败.这是通过联系表单阻止垃圾邮件的尝试.
我查看了验证的文档,但除了"max"规则之外没有其他任何操作,但这不起作用.
还有其他选择吗?
我找到了一个更清洁和防弹的解决方案:
'mustBeEmpty' => 'present|max:0',
Run Code Online (Sandbox Code Playgroud)
我使用以下规则来实现可以(安全地)验证空虚的可行规则:
'mustBeEmpty' => 'present|max:0',
Run Code Online (Sandbox Code Playgroud)
因此,__CODE__表示验证字段必须存在于输入数据中,但可以为空.
然后__CODE__检查验证字段是否必须包含在给定的值列表中.就我而言,我只给出一个值,一个随机值.通过这种方式,价值几乎没有机会匹配.如果你愿意,你可以使用随机哈希,虽然概率仍然存在"碰撞".
在验证的方法中,扩展/添加自定义规则:
Validator::extend('mustBeEmpty', function($attr, $value, $params){
if(!empty($attr)) return false;
return true;
});
Run Code Online (Sandbox Code Playgroud)
然后你可以这样使用rule:
protected $rules = array(
'emptyInputField' => 'mustBeEmpty'
);
Run Code Online (Sandbox Code Playgroud)
然后一切如常,只需使用:
$v = Validator::make(Input::except('_token'), $rules);
if($v->passes()) {
// Passed, means that the emptyInputField is empty
}
Run Code Online (Sandbox Code Playgroud)
还有其他方法可以做到这一点,而无需像这样扩展它或扩展类,Validator但这是一种简单的Laravelish方法。顺便说一句,有一个可用的软件包Github作为Laravel 应用程序的蜜罐垃圾邮件预防,您可以检查一下。
| 归档时间: |
|
| 查看次数: |
3915 次 |
| 最近记录: |