دوره آموزشی

آموزش پروژه محور ساخت فروشگاه فایل دانلودی با لاراول ۱۳
پیشرفته در حال ضبط

آموزش پروژه محور ساخت فروشگاه فایل دانلودی با لاراول ۱۳

00:38:53
0 دانشجو
1,499,000 تومان
مشاهده دوره
40 تخفیف آموزش حرفه ای طراحی قالب شرکتی بر پایه وردپرس
سطح متوسط تکمیل دوره

آموزش حرفه ای طراحی قالب شرکتی بر پایه وردپرس

08:32:53
3 دانشجو
999,000 599,000 تومان
مشاهده دوره
آموزش حرفه ای طراحی قالب فروشگاهی بر پایه ووکامرس
پیشرفته تکمیل دوره

آموزش حرفه ای طراحی قالب فروشگاهی بر پایه ووکامرس

12:09:12
7 دانشجو
1,499,000 تومان
مشاهده دوره

وبلاگ

ایجاد قوانین اعتبار سنجی سفارشی (Validation Rules) برای لاراول

2 دقیقه

ایجاد قوانین اعتبار سنجی سفارشی (Validation Rules) برای لاراول

به صورت پیش فرض برای قوانین اعتبار سنجی از Request Validation استفاده می کنیم که داده های ورودی کاربر را اعتبارسنجی می کند.

اما می خواهیم اعتبار سنجی خاصی ایجاد کنیم که از پیش فرض Request Validation استفاده نمی کند و با استفاده Regex داده های ورودی کاربر را اعتبار سنجی کنیم و فرض کن برای داده های ورودی mobile و password داریم.

با دستورات زیر دو فایل ValiMobile و ValiPassword ایحاد می کنیم.
php artisan make:rule ValidMobile
php artisan make:rule ValidPassword
برای Regex از سایت زیر کمک گرفتم.
https://ihateregex.io/
کد فایل VailMobile :
class ValidMobile implements ValidationRule
{
    public function __construct()
    {
        //
    }
    public function passes($attribute, $value): bool|int
    {
        return preg_match('/^9[0-9]{9}$/', $value);
    }

    public function validate(string $attribute, mixed $value, Closure $fail): void
    {
        if (!preg_match('/^9[0-9]{9}$/', $value)) {
            $fail('شماره ' . $attribute . 'شما 10 رقمی می باشد و بدون صفر وارد کنید.');
        }
    }
}
کد فایل VailPassword :
class ValidPassword implements ValidationRule
{
    public function __construct()
    {
        //
    }
    public function passes($attribute, $value): bool|int
    {
        return preg_match('/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$ %^&*-]).{8,}$/', $value);
    }

    public function validate(string $attribute, mixed $value, Closure $fail): void
    {
        if (!preg_match('/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$ %^&*-]).{8,}$/', $value)) {
            $fail('نوع'  . $attribute .  'نامناسب است و باید ترکیبی از حروف بزرگ و کوچک و اعداد باشد.');
        }
    }
}
در آخر با new این دو Validate را صدا می زنیم.
use App\Rules\ValidMobile;
use App\Rules\ValidPassword;

return Validator::make($data,
   [
      'mobile' => ['nullable', 'string', 'unique:users', new ValidMobile()],
      'password' => ['required', 'string', 'confirmed', new ValidPassword()],
   ]
);
پیش نمایش :
Screenshot 2024 04 04 at 16 18 26 Laravel
لاراول (Laravel) آوریل/12/2024 1672 بدون دیدگاه
240 
نظرات

دیدگاه شما


© راییوم 05-1402 تمامی حقوق محفوظ است.
قدرت گرفته از وردپرس و طراحی شده با فریم ورک Tani