ساختن اعتبار سنجی سفارشی در لاراول 5.5

۲۲ شهریور ۱۳۹۶

ساختن اعتبار سنجی سفارشی در لاراول 5.5

ابتدا برای ساخت 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!';
    }
}
    

 نویسنده:حمید شاه محمدی
 تعداد مشاهده خبر:(689)
 هر روز از مقاله های جدید طراحی سایت در کانال تلگرام ما با خبر شوید

 میانگین امتیازات:
 
  تعداد رای دهندگان: {{ count }}
نظرات:

{{ x }}
{{ alert }}

نویسنده:{{ com.name }}
{{ com.body }}
{{ com.created_at }}