لارافيل Validation - الجزء الأول - in - boolean - Email - Url - Timezone

لارافيل Validation - الجزء الأول - in - boolean - Email - Url - Timezone

2024-11-23 وقت القراءه : 4 دقائق

Boolean

لفرض أن لدي حقل يأخذ قيمة 0,1 بمعنى Boolean، يمكن التحقق من ذلك ببساطة بإستخدام Boolean، لقرض أن لدي فورم لإضافة المقالات

<form action="{{route('validation.store')}}" method="POST">
    @csrf
    <div class="container">
        @error('title')
        <div class="alert alert-danger">{{$message}}</div>
        @enderror
        <div class="mb-3">
            <label for="exampleFormControlInput1" class="form-label">title</label>
            <input type="text" class="form-control" name="title" id="exampleFormControlInput1" placeholder="Please Enter Title">
        </div>
        @error('status')
            <div class="alert alert-danger">{{$message}}</div>
        @enderror
        <select name="status" class="form-select" aria-label="Default select example">
            <option selected value="">Status</option>
            <option value="1">Active</option>
            <option value="0">In Active</option>
        </select>
        <br/>
        <button type="submit" class="btn btn-primary">Add</button>
    </div>
</form>

 ومن أحد هذه الحقول حقل status، لكتابة كود التحقق

$request->validate([
    'title'=>'required',
    'status'=>'required|boolean',
]);

هنا إذا لم يكن حقل status قيمته تساوي 0,1  سيظهر لدينا خطأ The status field must be true or false



In

كما يوجد طريقة أخرى للتحقق، من أن المدخلات فقط 0,1 وذلك بإستخدام in

$request->validate([
    'status'=>'required|in:1,0',
]);

هنا إذا كانت قيمة status لا تساوي 0,1 سيظهر لدينا الخطأ the selected status is invalid

كما يمكن إستخدام in مع string فلو لدينا حقل status يجب ان يكون Pending, Refused, Accepted فيجب ان يكون التحقق بالشكل التالي:

$request->validate([
    'status'=>'required|in:Pending,Refused,Accepted',
]);


Email

بكل بساطة نستخدم email للتحقق أن المدخل بريد إلكتروني، حيث يجب ان يحتوي على @ و .any.

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

<form action="{{route('validation.store')}}" method="POST">
@csrf
    @error('email')
    <div class="alert alert-danger">{{$message}}</div>
    @enderror
    <div class="mb-3">
        <input type="text" class="form-control" name="email" placeholder="Please Enter Email">
    </div>
    <button type="submit" class="btn btn-primary">Add</button>
</form>

للتحقق أن المدخل بريد إلكتروني

$request->validate([
    'email'=>'required|email',
]);

أما إذا كان المدخل ليس بريد إلكتروني سيظهر الخطأ التالي the email must be a valid email address



Url

للتحقق أن المدخل رابط

$request->validate([
    'url'=>'required|url',
]);


timezone

يمكن التحقق أن المدخل هو timezone من خلال إستخدام timezone في validation فلو كان لدي الحقل التالي

<form action="{{route('validation.store')}}" method="POST">
@csrf
    @error('timezone')
        <div class="alert alert-danger">{{$message}}</div>
    @enderror
    <select name="timezone" class="form-select" aria-label="Default select example">
        <option selected value="">Status</option>
        <option value="Asia/Jerusalem">Asia/Jerusalem</option>
        <option value="Asia/Amman">Asia/Amman</option>
        <option value="Asia/Beirut">Asia/Beirut</option>
        <option value="Asia/Dubai">Asia/Dubai</option>
        <option value="Asia/Kuwait">Asia/Kuwait</option>
        <option value="Asia/Damascus">Asia/Damascus</option>
    </select>
    <br/>
    <button type="submit" class="btn btn-primary">Add</button>
</div>
</form>

للتحقق أن المدخل هو timezone

$request->validate([
    'timezone'=>'required|timezone',
]);

وفي حال التلاعب بالمدخلات ولم يكن timezone


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