ابتدا برای ساخت Custom Validation Rules در CMD خود دستور زیر را وارد می کنیم:
php artisan make:rule ruleName
سپس در پوشه app\Rules کلاس validation شما ساخته می شود. سپس در داخل متد passes اعتبار سنجی را انجام می دهیم و در متد message پیام خود را وارد می کنیم:
use Illuminate\Contracts\Validation\Rule;
class CowbellValidationRule implements Rule
{
public function passes($attribute, $value)
{
return $value > 10;
}
public function message()
{
return ':attribute needs more cowbell!';
}
}
و سپس به شکل زیر استفاده می کنیم:
public function store()
{
// Validation message would be "song needs more cowbell!"
$this->validate(request(), [
'song' => [
'required',
new CowbellValidationRule
]
]);
}
بصورت زیر هم می توانیم بدون ساخت کلاس Rule،اعتبارسنجی خود را ایجاد کنیم:
public function store()
{
$this->validate(request(), [
'song' => [function ($attribute, $value, $fail) {
if ($value <= 10) {
$fail(':attribute needs more cowbell!');
}
}]
]);
}
اعتبار سنجی سفارشی اگر فیلد song خالی باشد یا وجود نداشته باشد کار نمی کند.برای اینکه در این فیلدها هم کار کند از ImplicitRule استفاده می کنیم:
use Illuminate\Contracts\Validation\ImplicitRule;
class CowbellValidationRule implements ImplicitRule
{
public function passes($attribute, $value)
{
return $value > 10;
}
public function message()
{
return ':attribute needs more cowbell!';
}
}