لارافيل Validation - الجزء السادس - min, max, between , digits, digits between

لارافيل Validation - الجزء السادس - min, max, between , digits, digits between

2024-05-14 وقت القراءه : 3 دقائق

min

تستخدم لتحديد القيمة الأقل للبيانات المدخلة

لفرض لدي المثال التالي

<form action="{{route('validation.store')}}" method="POST">
    @csrf
    <div class="container">
        @error('score')
        <div class="alert alert-danger">{{$message}}</div>
        @enderror
        <input type="number" value="{{ old('score') }}" name="score" class="form-control"/>
        <button type="submit"  class="btn btn-primary">Add</button>
    </div>
</form>

وأريد التحقق ان البيانات المرسلة من حقل score ان لا تقل عن 50، هنا أستخدم min:50

$request->validate([
    'score'=>'required|numeric|min:50',
]);

أما إذا كانت القيمة أقل من ٥٠ سوف أحصل على الخطأ التالي



max

تستخدم لتحديد القيمة الأعلى للبيانات المدخلة

$request->validate([
    'score'=>'required|numeric|min:50|max:100',
]);

كذلك يمكن إستخدام min و max مع الحروق، بحيث يتم تحديد عدد الأحرف المدخلة

$request->validate([
    'score'=>'required|string|min:50|max:100',
]);


between

اذا كنا نريد التحقق من رقم أنه بين رقمين، عوضا عن إستخدام min:50|max:100 يمكن إستخدام between:50,100

$request->validate([
    'score'=>'required|numeric|between:50,100',
]);

أما إذا كانت القيمة أقل من 50 أو أكثر من 100 فسوف أحصل على الخطأ التالي

كذللك يمكن إستخدامها مع المصفوفات، هنا كم عدد عناصر المصفوفة المرسلة، بحيث لو كان لدي اكثر من input يتم إدخاله بنفس الإسم على شكل مصفوفة، يتم تحديد عدد العناصر المرسلة

 مثلا لو لدي الحقول التالية

<input type="text" name="score[]" class="form-control"/>
<input type="text" name="score[]" class="form-control"/>
<input type="text" name="score[]" class="form-control"/>

وكان التحقق بالشكل التالي

$request->validate([
    'score'=>'required|array|between:1,2',
]);

بالتالي سوف يعطي خطأ لأنه تم إرسال score[] ثلاث مرات، ونحن قمنا بتحديد ان يتم إرسال عنصر أو عنصرين، كذلك لو قمنا بإرسال بيانات فارغه سوف يعطي نفس الخطئ



digits

تستخدم لتحديد input length بمعنى عدد الخانات، هنا يتم الحديث عن الأرقام وليس الأحرف

فلو كان لدي الفورم التالي

<form action="{{route('validation.store')}}" method="POST">
    @csrf
    <div class="container">
        @error('score')
        <div class="alert alert-danger">{{$message}}</div>
        @enderror
        <input type="text" value="{{ old('score') }}" name="score" class="form-control"/>
        <button type="submit"  class="btn btn-primary">Add</button>
    </div>
</form>

وأريد ان يكون عدد المدخلات عن 5 في حقل score

$request->validate([
    'score'=>'required|digits:5',
]);

أما إذا كان عدد المدخلات لا يساوي ٥ سوف أحصل على هذا الخطأ



digits between

تستخدم لتحديد من وإلى عدد العناصر

$request->validate([
    'score'=>'required|digits_between:5,9',
]);

بمعنى ان طول اللـ input  يجب ان يكون بين 5,9


التعليقات
علي حسن علي
منذ سنتين

عظيم

إضافة تعليق
Loading...