| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- <?php
- namespace Illuminate\Validation\Rules;
- use Closure;
- use InvalidArgumentException;
- use Stringable;
- class ProhibitedUnless implements Stringable
- {
- /**
- * The condition that validates the attribute.
- *
- * @var (\Closure(): bool)|bool
- */
- public $condition;
- /**
- * Create a new prohibited validation rule based on a condition.
- *
- * @param (\Closure(): bool)|bool $condition
- *
- * @throws \InvalidArgumentException
- */
- public function __construct($condition)
- {
- if ($condition instanceof Closure || is_bool($condition)) {
- $this->condition = $condition;
- } else {
- throw new InvalidArgumentException('The provided condition must be a callable or boolean.');
- }
- }
- /**
- * Convert the rule to a validation string.
- *
- * @return string
- */
- public function __toString()
- {
- if (is_callable($this->condition)) {
- return call_user_func($this->condition) ? '' : 'prohibited';
- }
- return $this->condition ? '' : 'prohibited';
- }
- }
|