لفرض أن لدي حقل يأخذ قيمة 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
كما يوجد طريقة أخرى للتحقق، من أن المدخلات فقط 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 للتحقق أن المدخل بريد إلكتروني، حيث يجب ان يحتوي على @ و .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
للتحقق أن المدخل رابط
$request->validate([ 'url'=>'required|url', ]);
يمكن التحقق أن المدخل هو 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