Rule.php
TLDR
The Rule.php
file in the Illuminate\Validation
namespace contains a class Rule
that provides various static methods for creating different validation rules. These methods return instances of different rule classes, such as Can
, Exists
, In
, and Unique
. The Rule
class also uses the Macroable
trait.
Methods
can
This method creates a new Can
constraint builder instance with the given ability and arguments.
when
This method applies the given rules if the given condition is truthy. It returns a ConditionalRules
instance.
unless
This method applies the given rules if the given condition is falsy. It returns a ConditionalRules
instance.
forEach
This method creates a new nested rule set using the given callback function. It returns a NestedRules
instance.
unique
This method creates a new Unique
constraint builder instance with the given table and column.
exists
This method creates a new Exists
constraint builder instance with the given table and column.
in
This method creates a new In
constraint builder instance with the given values.
notIn
This method creates a new NotIn
constraint builder instance with the given values.
requiredIf
This method creates a new RequiredIf
constraint builder instance with the given callback.
excludeIf
This method creates a new ExcludeIf
constraint builder instance with the given callback.
prohibitedIf
This method creates a new ProhibitedIf
constraint builder instance with the given callback.
enum
This method creates a new Enum
constraint builder instance with the given type.
file
This method creates a new File
constraint builder instance.
imageFile
This method creates a new ImageFile
constraint builder instance.
dimensions
This method creates a new Dimensions
constraint builder instance with the given constraints.
Classes
There are no classes defined in this file.
<?php
namespace Illuminate\Validation;
use Illuminate\Contracts\Support\Arrayable;
use Illuminate\Support\Traits\Macroable;
use Illuminate\Validation\Rules\Can;
use Illuminate\Validation\Rules\Dimensions;
use Illuminate\Validation\Rules\Enum;
use Illuminate\Validation\Rules\ExcludeIf;
use Illuminate\Validation\Rules\Exists;
use Illuminate\Validation\Rules\File;
use Illuminate\Validation\Rules\ImageFile;
use Illuminate\Validation\Rules\In;
use Illuminate\Validation\Rules\NotIn;
use Illuminate\Validation\Rules\ProhibitedIf;
use Illuminate\Validation\Rules\RequiredIf;
use Illuminate\Validation\Rules\Unique;
class Rule
{
use Macroable;
/**
* Get a can constraint builder instance.
*
* @param string $ability
* @param mixed ...$arguments
* @return \Illuminate\Validation\Rules\Can
*/
public static function can($ability, ...$arguments)
{
return new Can($ability, $arguments);
}
/**
* Apply the given rules if the given condition is truthy.
*
* @param callable|bool $condition
* @param array|string|\Closure $rules
* @param array|string|\Closure $defaultRules
* @return \Illuminate\Validation\ConditionalRules
*/
public static function when($condition, $rules, $defaultRules = [])
{
return new ConditionalRules($condition, $rules, $defaultRules);
}
/**
* Apply the given rules if the given condition is falsy.
*
* @param callable|bool $condition
* @param array|string|\Closure $rules
* @param array|string|\Closure $defaultRules
* @return \Illuminate\Validation\ConditionalRules
*/
public static function unless($condition, $rules, $defaultRules = [])
{
return new ConditionalRules(! $condition, $rules, $defaultRules);
}
/**
* Create a new nested rule set.
*
* @param callable $callback
* @return \Illuminate\Validation\NestedRules
*/
public static function forEach($callback)
{
return new NestedRules($callback);
}
/**
* Get a unique constraint builder instance.
*
* @param string $table
* @param string $column
* @return \Illuminate\Validation\Rules\Unique
*/
public static function unique($table, $column = 'NULL')
{
return new Unique($table, $column);
}
/**
* Get an exists constraint builder instance.
*
* @param string $table
* @param string $column
* @return \Illuminate\Validation\Rules\Exists
*/
public static function exists($table, $column = 'NULL')
{
return new Exists($table, $column);
}
/**
* Get an in constraint builder instance.
*
* @param \Illuminate\Contracts\Support\Arrayable|array|string $values
* @return \Illuminate\Validation\Rules\In
*/
public static function in($values)
{
if ($values instanceof Arrayable) {
$values = $values->toArray();
}
return new In(is_array($values) ? $values : func_get_args());
}
/**
* Get a not_in constraint builder instance.
*
* @param \Illuminate\Contracts\Support\Arrayable|array|string $values
* @return \Illuminate\Validation\Rules\NotIn
*/
public static function notIn($values)
{
if ($values instanceof Arrayable) {
$values = $values->toArray();
}
return new NotIn(is_array($values) ? $values : func_get_args());
}
/**
* Get a required_if constraint builder instance.
*
* @param callable|bool $callback
* @return \Illuminate\Validation\Rules\RequiredIf
*/
public static function requiredIf($callback)
{
return new RequiredIf($callback);
}
/**
* Get a exclude_if constraint builder instance.
*
* @param callable|bool $callback
* @return \Illuminate\Validation\Rules\ExcludeIf
*/
public static function excludeIf($callback)
{
return new ExcludeIf($callback);
}
/**
* Get a prohibited_if constraint builder instance.
*
* @param callable|bool $callback
* @return \Illuminate\Validation\Rules\ProhibitedIf
*/
public static function prohibitedIf($callback)
{
return new ProhibitedIf($callback);
}
/**
* Get an enum constraint builder instance.
*
* @param string $type
* @return \Illuminate\Validation\Rules\Enum
*/
public static function enum($type)
{
return new Enum($type);
}
/**
* Get a file constraint builder instance.
*
* @return \Illuminate\Validation\Rules\File
*/
public static function file()
{
return new File;
}
/**
* Get an image file constraint builder instance.
*
* @return \Illuminate\Validation\Rules\ImageFile
*/
public static function imageFile()
{
return new ImageFile;
}
/**
* Get a dimensions constraint builder instance.
*
* @param array $constraints
* @return \Illuminate\Validation\Rules\Dimensions
*/
public static function dimensions(array $constraints = [])
{
return new Dimensions($constraints);
}
}