This commit is contained in:
2026-05-01 23:40:14 +08:00
commit b8f599a617
3867 changed files with 478663 additions and 0 deletions
+51
View File
@@ -0,0 +1,51 @@
<?php
namespace Illuminate\Validation\Rules;
use Closure;
use InvalidArgumentException;
use Stringable;
class RequiredIf implements Stringable
{
/**
* The condition that validates the attribute.
*
* @var (\Closure(): bool)|bool
*/
public $condition;
/**
* Create a new required validation rule based on a condition.
*
* @param (\Closure(): bool)|bool|null $condition
*
* @throws \InvalidArgumentException
*/
public function __construct($condition)
{
if (is_null($condition)) {
$condition = false;
}
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) ? 'required' : '';
}
return $this->condition ? 'required' : '';
}
}