I have an input field which needs to be empty, otherwise I want the validation to fail. This is an attempt at stopping spam through a contact form.
I’ve looked at the documentation for the validation but there’s nothing to do this, other than the “max” rule, but this doesn’t work.
Any other options?
Advertisement
Answer
In the method where you are validation, extend/add custom rule:
Validator::extend('mustBeEmpty', function($attr, $value, $params){ if(!empty($attr)) return false; return true; });
Then you may use this rule
like:
protected $rules = array( 'emptyInputField' => 'mustBeEmpty' );
Then everything is as usual, just use:
$v = Validator::make(Input::except('_token'), $rules); if($v->passes()) { // Passed, means that the emptyInputField is empty }
There are other ways to do it without extending it like this or extending the Validator
class but it’s an easy Laravelish
way to do it. Btw, there is a package available on Github
as Honeypot spam prevention for Laravel applications, you may check that.