Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel表单验证,如果不为空则失败_Php_Validation_Laravel - Fatal编程技术网

Php Laravel表单验证,如果不为空则失败

Php Laravel表单验证,如果不为空则失败,php,validation,laravel,Php,Validation,Laravel,我有一个需要为空的输入字段,否则我希望验证失败。这是一种通过联系人表单阻止垃圾邮件的尝试 我已经看过了验证的文档,但是除了“max”规则之外,没有什么可以做的,但是这不起作用 任何其他选项?在验证方法中,扩展/添加自定义规则: Validator::extend('mustBeEmpty', function($attr, $value, $params){ if(!empty($attr)) return false; return true; }); 然后您可以使用此规则如

我有一个需要为空的输入字段,否则我希望验证失败。这是一种通过联系人表单阻止垃圾邮件的尝试

我已经看过了验证的文档,但是除了“max”规则之外,没有什么可以做的,但是这不起作用


任何其他选项?

在验证方法中,扩展/添加自定义规则:

Validator::extend('mustBeEmpty', function($attr, $value, $params){
    if(!empty($attr)) return false;
    return true;
});
然后您可以使用此
规则
如下:

protected $rules = array(
    'emptyInputField' => 'mustBeEmpty'
);
然后一切照旧,只需使用:

$v = Validator::make(Input::except('_token'), $rules);
if($v->passes()) {
    // Passed, means that the emptyInputField is empty
}
还有其他方法不需要像这样扩展它或扩展
验证程序
类,但这是一种简单的
Laravelish
方法。顺便说一句,Github上有一个可用的包,您可以检查。

您可以使用空规则。可以在此处查看详细信息:

这里有一个干净且(可能)防弹的解决方案:

“mustBeEmpty”=>“当前最大值:0”,

在laravel 5.8中,有时可以使用
添加条件规则<代码>'email'=>'有时| email'
。如果输入字段中存在某些内容,则将应用此规则。

鼓励链接到外部资源,但请在链接周围添加上下文,以便您的其他用户了解它是什么以及为什么存在。始终引用重要链接中最相关的部分,以防目标站点无法访问或永久脱机。我尝试了建议的“蜜罐垃圾邮件预防”,它提供了您所需的一切。;-)那不是OP要求的。。字段必须始终为空。。