چگونه یک قانون اعتبار سنجی سفارشی در لاراول ایجاد کنید

۱۰ خرداد ۱۳۹۷

طراحی سایت

در این مقاله می خواهیم چگونگی ساختن validation سفارشی در لاراول، برای پروژه های طراحی سایت را به شما نشان دهیم. در این مثال می خواهیم سالهای المپیک را اعتبار سنجی کنیم:

طراحی سایت

حالا، اجازه دهید یک قانون اعتبارسنجی ایجاد کنیم که فقط می توانید سال بازی های المپیک را وارد کنید:

  • بازی ها در سال 1896 آغاز شد
  • سال نمی تواند بزرگتر از سال جاری باشد
  • سال باید بر 4 تقسیم شود

فرمان زیر را اجرا می کنیم:


php artisan make:rule OlympicYear

با این فرمان لاراول یک فایل تولید می کند.
app/Rules/OlympicYear.php:


namespace App\Rules;

use Illuminate\Contracts\Validation\Rule;

class OlympicYear implements Rule
{

    /**
     * Determine if the validation rule passes.
     *
     * @param  string  $attribute
     * @param  mixed  $value
     * @return bool
     */
    public function passes($attribute, $value)
    {
        //
    }

    /**
     * Get the validation error message.
     *
     * @return string
     */
    public function message()
    {
        return 'The validation error message.';
    }
}

در متد passes مقدار مورد نظر را به شکل زیر اعتبارسنجی می کنیم:


public function passes($attribute, $value)
{
    return $value >= 1896 && $value <= date('Y') && $value % 4 == 0;
}

سپس پیام را به شکل زیر نمایش می دهیم:


public function message()
{
    return ':attribute should be a year of Olympic Games';
}

در متد store در controller برای ذخیره داده به شکل زیر عمل می کنیم:


public function store(Request $request)
{
    $this->validate($request, ['year' => new OlympicYear]);
}

در آرایه دوم باید rule class خود را new کنید:

طراحی سایت

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

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

{{ x }}
{{ alert }}

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