آموزش اعتبارسنجی validation در لاراول با مثال
اعتبارسنجی (Validation) مهم ترین جنبه در طراحی یک اپلیکیشن است. این عملیات، داده های ورودی کاربر (Requests)را، اعتبارسنجی می کند. به طور پیش فرض، کلاس controller -ِ پایه (base controller) از یک trait به نام ValidatesRequests استفاده می کند. این trait، با قواعدِ قدرتمندی که دارد، درخواست های HTTP ورودی رابا روش های کارآمدی، اعتبارسنجی می کند.
به زبان ساده، اعتبارسنجی یعنی اینکه روی ورودی های کاربر، کنترل صورت گیرد و چک شود آیا ورودی های کاربر، همان چیزی هست که ما از او انتظار داریم یا خیر. اگر ورودی ها صحیح باشد کاربر را وارد مرحله جدید می کنیم، درغیر این صورت عملیاتِ مورد نظرِ کاربر، انجام نمی گیرد و پیغام خطا برای او نمایش داده می شود.
قوانین اعتبار سنجی موجود در Laravel
ممکن است برای شما این سوال پیش بیاید اگر پارامترهایی که کاربر می فرستند، با قوانین اعتبارسنجی منطبق نباشد چه اتفاقی می افتد؟
همان طور که قبلا گفته شده کاربر را ، به صفحه قبل باز می گرداند و خطاهای اعتبارسنجی تولید شده را ، در داخل session ذخیره می کند. نیازی به bind کردن و فرستادن این خطاها به View نیست. زیرا لاراول تمامی خطاها را در session ذخیره کرده است.و آنها را بصورت خودکار به view متصل یا bind می کند.
به عبارتی متغیر errors$ در همه View ها موجود و قابل دسترسی می باشد و می توانید به راحتی از آن استفاده نمایید.
جدول زیر تمام قوانین اعتبار سنجی موجود در Laravel را نشان می دهد.
قوانین اعتبار سنجی موجود در Laravel |
||
Accepted |
Active URL |
After (Date) |
Alpha |
Alpha Dash |
Alpha Numeric |
Array |
Before (Date) |
Between |
Boolean |
Confirmed |
Date |
Date Format |
Different |
Digits |
Digits Between |
|
Exists (Database) |
Image (File) |
In |
Integer |
IP Address |
JSON |
Max |
MIME Types(File) |
Min |
Not In |
Numeric |
Regular Expression |
Required |
Required If |
Required Unless |
Required With |
Required With All |
Required Without |
Required Without All |
Same |
Size |
String |
Timezone |
Unique (Database) |
URL |
نمایش error ها در view
متغیر errors$ یک نمونه ازکلاس Illuminate \ Support \ MessageBag خواهد بود.پیام خطا را می توان در فایل view، به وسیله قرار دادن قطعه کد زیر نمایش داد.
@if (count($errors) > 0)
<div class = "alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
مثال :
مرحله 1 – با وارد کردن دستور artisan زیر در خط فرمان (command-line)، یک controller به نام ValidationController بسازید.
php artisan make:controller ValidationController --plain
مرحله 2 –- بعد از ساخت controller، پیامی مبنی بر موفقت آمیز بودن دستور فوق برای شما نمایش داده می شود.
مرحله 3 – کد زیر را در فایل app/Http/Controllers/ValidationController.php قرار دهید.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
class ValidationController extends Controller {
public function showform(){
return view('login');
}
public function validateform(Request $request){
print_r($request->all());
$this->validate($request,[
'username'=>'required|max:8',
'password'=>'required'
]);
}
}
مرحله 4 – یک فایل view به نام resources/views/login.blade.php بسازید و کدهای زیر را در آن فایل قرار دهید.
<html>
<head>
<title>Login Form</title>
</head>
<body>
@if (count($errors) > 0)
<div class = "alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<?php
echo Form::open(array('url'=>'/validation'));
?>
<table border = '1'>
<tr>
<td align = 'center' colspan = '2'>Login</td>
</tr>
<tr>
<td>Username</td>
<td><?php echo Form::text('username'); ?></td>
</tr>
<tr>
<td>Password</td>
<td><?php echo Form::password('password'); ?></td>
</tr>
<tr>
<td align = 'center' colspan = '2'
><?php echo Form::submit('Login'); ? ></td>
</tr>
</table>
<?php
echo Form::close();
?>
</body>
</html>
مرحله 5 – Route های زیر را در فایل app/Http/routes.php قرار دهید.
Route::get('/validation','ValidationController@showform');
Route::post('/validation','ValidationController@validateform');
مرحله 6 – مرورگر خود را باز کنید و URL زیر را در آن وارد کنید.
http://localhost:8000/validation
مرحله 7 – بدون اینکه فیلدهای username و password را پر کنید روی دکمه login کلیک کنید.یکسری پیام مطابق تصویر زیر برای شما نمایش داده می شود.
این فصل در یک نگاه:
آشنایی با امکانات جدید لاراول ۷…
برخی از سرفصل های این پکیج آموزشی : لاراول چیست و چرا ما لاراول استفاده میکنیم کامپوزر کارش چیه و نصب اون نصب لاراول آموزش نصب لاراول از طریق اینستالر آموزش نصب لاراول با استفاده ا…این فصل در یک نگاه:
بهترین و پر بازده ترین روش تبدیل بازدیدکننده سایت به مشتری تبلیغات هدفمند و برند سازی هوشمندانه با ایمیل می باشد. ایمیل…
وبینار(سمینار آنلاین) آموزش تکنیک های ایمیل مارکتینگ اگر تا انتها این متن را مطالعه کنید نظر شما در مورد ایمیل مارکتینگ 180 درجه عوض می شود!! بر هیچکس پوشیده نیست که از سال 1972 که ای…این فصل در یک نگاه:
مباحث تکمیلی فریم ورک لاراول…
فصل اول :آموزش مقدماتی فریم ورک لاراول معرفی فریم ورک لاراول و پیشنیازهای انجام کار انجام کانفیگ های اولیه برای نصب و راه اندازی فریم ورک معرفی روش های نصب پروژه لاراولی از طریق سایت گی…این فصل در یک نگاه:
مباحث مقدماتی فریم ورک react.js…
توضیحات کلی مجموعه: فصل اول : آشنایی با مباحث مقدماتی فریم ورک react.js نصب و راه اندازی node.js و کلیه پیش نیازهای لازم نصب فریم ورک react روی لوکال و انجام تست های لازم آغاز آشنایی …