The rule requiredactually returns false if you pass an empty string.
If we look at the code ( Illuminate\Validation\Validator)
protected function validateRequired($attribute, $value)
{
if (is_null($value))
{
return false;
}
elseif (is_string($value) && trim($value) === '')
{
return false;
}
return true;
}
, - , , null:
Validator::extendImplicit('attribute_exists', function($attribute, $value, $parameters){
return ! is_null($value);
});
( extendImplicit, extend , )
:
\Validator::make(array("name"=>""), array("name"=>"attribute_exists"));