تخفیف تابستانی سال ۱۳۹۹ تاپایان: پنجشنبه ۱۲ تیر ۱۳۹۹
بزن بریم فروشگاه

درس 20 - Validation یا اعتبارسنجی در لاراول

آموزش اعتبارسنجی در فریمورک لاراول

اعتبارسنجی یا Validation یکی از جنبه های اصلی توسعه ی اپلیکیشن ها با لاراول است. این سیستم داده های دریافت شده توسط اپلیکیشن ساخته شده توسط شما را ارزیابی میکند. 

بصورت پیشفرض ، کنترلرهای فریمورک لاراول از خواص و ویژگی های ValidatesRequests استفاده میکند که بصورت پیشفرض تمامی داده های HTTP رسیده را توسط یک سیستم اعتبار سنجی قوی ، ارزیابی میکند.

 

قوانین اعتبار سنجی موجود در لاراول

فریمورک لاراول همیشه سعی میکند پیام خطاهای ذخیره شده در سشن را بازیابی کند و آنها را view پردازش کند.

بنابراین در هر درخواستی در نظر داشته باشید لاراول برای شما متغیری به نام $errors میسازد و در view شما قابل نمایش است که شامل تمام خطاهای موجود است.

در تصویر زیر جدولی را مشاهده میکنید قوانین validation موجود در فریمورک لاراول را به شما نمایش میدهد.

آموزش 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 - بعد از اجرای کد بالا نتیجه باید مشابه تصویر زیر باشد و پیام ساخته شده موفقیت آمیز کنترلر برای شما نمایش داده شود.

آموزش اعتبار سنجی یا validation در فریمورک لاراول

قدم 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 کلیک کنید تا ببینید که بالای فرم خطا ها نمایش داده میشود.

آموزش اعتبارسنجی داده ها در فریمورک لاراول

اتمام درس .