<?php
namespace Illuminate\Validation\Rules;
use Illuminate\Contracts\Validation\Rule;
use TypeError;
class Enum implements Rule
{
/**
* The type of the enum.
*
* @var string
*/
protected $type;
/**
* Create a new rule instance.
*
* @param string $type
* @return void
*/
public function __construct($type)
{
$this->type = $type;
}
/**
* Determine if the validation rule passes.
*
* @param string $attribute
* @param mixed $value
* @return bool
*/
public function passes($attribute, $value)
{
if ($value instanceof $this->type) {
return true;
}
if (is_null($value) || ! function_exists('enum_exists') || ! enum_exists($this->type) || ! method_exists($this->type, 'tryFrom')) {
return false;
}
try {
return ! is_null($this->type::tryFrom($value));
} catch (TypeError $e) {
return false;
}
}
/**
* Get the validation error message.
*
* @return array
*/
public function message()
{
$message = trans('validation.enum');
return $message === 'validation.enum'
? ['The selected :attribute is invalid.']
: $message;
}
}
If you encounter any issues or need assistance, please reach out to our dedicated developer support team Contact Us
Thank you for choosing Kueue Pay Payment Gateway Solutions! We look forward to seeing your integration thrive and provide a seamless payment experience for your valued customers.