ورود / ثبت نام سبد خرید 0
اعتبارسنجی یا Validation یکی از جنبه های اصلی توسعه ی اپلیکیشن ها با لاراول است. این سیستم داده های دریافت شده توسط اپلیکیشن ساخته شده توسط شما را ارزیابی میکند.
بصورت پیشفرض ، کنترلرهای فریمورک لاراول از خواص و ویژگی های ValidatesRequests استفاده میکند که بصورت پیشفرض تمامی داده های HTTP رسیده را توسط یک سیستم اعتبار سنجی قوی ، ارزیابی میکند.
فریمورک لاراول همیشه سعی میکند پیام خطاهای ذخیره شده در سشن را بازیابی کند و آنها را view پردازش کند.
بنابراین در هر درخواستی در نظر داشته باشید لاراول برای شما متغیری به نام $errors میسازد و در view شما قابل نمایش است که شامل تمام خطاهای موجود است.
در تصویر زیر جدولی را مشاهده میکنید قوانین validation موجود در فریمورک لاراول را به شما نمایش میدهد.
متغیر $errors یک instance از Illuminate\Support\MessageBag خواهد بود.
کد زیر نمونه ای از نمایش خطاها در فایل view است و توجه کنید که از کدهای blade فریمورک لاراول استفاده شده است.
@if (count($errors) > 0) <div class = "alert alert-danger"> <ul> @foreach ($errors->all() as $error) <li>{{ $error }}</li> @endforeach </ul> </div> @endif
برای درک مسئله ی اعتبار سنجی در فریمورک لاراول مثال زیر را در نظر داشته باشید.
قدم 1 - یک کنترلر جدید به نام ValidationController توسط دستور زیر در ترمینال یا کامند پرومپ بسازید.
php artisan make:controller ValidationController --plain
قدم 2 - بعد از اجرای کد بالا نتیجه باید مشابه تصویر زیر باشد و پیام ساخته شده موفقیت آمیز کنترلر برای شما نمایش داده شود.
قدم 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 فریمورک لاراول خود را باز کنید و کدهای زیر را درون آن بنویسید.
Route::get('/validation','ValidationController@showform'); Route::post('/validation','ValidationController@validateform');
قدم 6 - بعد از اجرا کردن دستور serve به آدرس url زیر در مرورگر مراجعه کنید.
http://localhost:8000/validation
قدم 7 - در مرورگر نتیجه ی زیر را مشاهده میکنید بدون پر کردن فیلدها روی دکمه ی login کلیک کنید تا ببینید که بالای فرم خطا ها نمایش داده میشود.
اتمام درس .
محصولات برگزیده مناسب شما