firefly-iii/app/Rules/IsBoolean.php
2018-12-03 07:18:05 +01:00

57 lines
1.1 KiB
PHP

<?php
namespace FireflyIII\Rules;
use Illuminate\Contracts\Validation\Rule;
/**
* Class IsBoolean
*/
class IsBoolean implements Rule
{
/**
* Get the validation error message.
*
* @return string
*/
public function message(): string
{
return (string)trans('validation.boolean');
}
/**
* Determine if the validation rule passes.
*
* @param string $attribute
* @param mixed $value
*
* @return bool
*/
public function passes($attribute, $value): bool
{
if (\is_bool($value)) {
return true;
}
if (\is_int($value) && 0 === $value) {
return true;
}
if (\is_int($value) && 1 === $value) {
return true;
}
if (\is_string($value) && '1' === $value) {
return true;
}
if (\is_string($value) && '0' === $value) {
return true;
}
if (\is_string($value) && 'true' === $value) {
return true;
}
if (\is_string($value) && 'false' === $value) {
return true;
}
return false;
}
}