تخفیف ویژه دانشجویان چسبون ، برای اطلاع از جزئیات این تخفیف اینجا کلیک کنید
keyboard_return  چسبون مقالات آموزشی آموزش اعتبار سنجی داده ها در لاراول
  1. آموزش اعتبار سنجی داده ها در لاراول

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

لاراول از روش های مختلفی برای اعتبار سنجی داده های ارسال شده در فرم ها استفاده می کند. بطور پیش فرض لاراول از validatesRequests برای اعتبار سنجی درخواست های HTTP بهره می برد. این متد با استفاده از قوائدی که شما تعیین می کنید می تواند درخواست های ارسال شده در اپلیکیشن را مورد اعتبار سنجی قرار دهد.

در ادامه با ارائه یک مثال نحوه اعتبار سنجی درخواست های HTTP را مورد بررسی قرار خواهیم داد.ابتدا مسیر های زیر را در فایل web.php تعریف می کنیم.

Route::get('post/create', 'PostController@create');

Route::post('post', 'PostController@store');

در این مثال مسیر GET برای نمایش فرم مورد نظر جهت دریافت اطلاعات و همچنین نمایش پیغام های خطای احتمالی بکار می رود. همچنین از POST نیز برای ذخیره اطلاعات مورد نظر در دیتابیس استفاده می کنیم.

حال یک کنترلر جهت مدیریت و اجرای درخواست های ارسال شده تعریف می کنیم. نام کنترلر در این مثال PostController می باشد البته شما می توانید نام دلخواه خود را برای کنترلر تعیین کنید.

php artisan make:controller PostController

همانطور که در فایل web.php مشخص کردیم از متد GET برای نمایش فرم مورد نظر استفاده می کنیم زمانیکه کاربر در مرورگر خود آدرس create/ را وارد کند فرم طراحی HTML شده را مشاهده خواهد کرد. آموزش طراحی فرم در لاراول

<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;

class PostController extends Controller
{
   
    public function create()
    {
        // return your create blade file
    }

    
    public function store(Request $request)
    {
        // Validate the Http request
    }
}

 در این کنترلر دو متد create و store تعریف کردیم. از متد create برا نمایش فرم مورد نظر استفاده می کنیم و از متد store برای اعتبار سنجی فرم استفاده خواهد شد. در صورتیکه اعتبار سنجی به درستی صورت گرفت می توانید داده های مورد نظر را در دیتابیس ذخیره کنید که در این آموزش از آن صرف نظر کردیم.

 پس از پر کردن اطلاعات مورد نظر و زدن دکمه ذخیره در مسیر create/ اطلاعات این فرم با متد POST به کنترلر postController ارسال می شود و متد store فراخوانی می شود که در این قسمت باید قوانین و الزامات مربوط به فیلدهای مورد نظر را تعیین کنید.

به منظور اعتبار سنجی فیلدهای مورد نظر از متد validate استفاده می کنیم. در ابتدا باید شی Illuminate\Http\Request را در ابتدای کنترلر مورد نظر use کنید. در غیر اینصورت با خطا مواجه خواهید شد

use Illuminate\Http\Request;

متد validate داده های ارسال شده را با قوانین تعریف شده مطابقت می دهد در صورتیکه داده های ارسالی قوانین تعیین شده را دارا باشند کدهایی که در ادامه در این متد نوشته اید اجرا خواهند شد و در غیر اینصورت اگر یکی از فیلدها شرط مورد نظر را نداشته باشد یک خطا رخ می دهد و بطور اتوماتیک به صفحه قبل (صفحه حاوی فرم) هدایت خواهید شد و در آنجا می توانید خطای مورد نظر را به کاربر نمایش دهید.

حالا در متد store قوانین مربوط به اعتبار سنجی را اضافه خواهیم کرد:

$request->validate([
        'name' => 'required|min:3|max:255',
        'email' => 'required|email',
     ]);

 در این مثال تصور کردیم فرم شما دارای دو فیلد ورودی با نام های name و email می باشد. فیلد name از نوع required و با حداقل 3 کاراکتر و حداکثر طول 255 کاراکتر و همچنین فیلد email نیز از نوع email و الزامی تعیین کردیم. در صورتیکه بخواهیم یک فیلد از نوع اختیاری باشد بجای required  باید از nullable استفاده کنید. همچنین برای  فیلدهای عددی می توانید از پارامتر number و برای فیلدهای متنی از پارامتر alpha و alpha_num استفاده کنید. به منظور مطالعه قوانین و rule های بیشتر می توانید به مستندات لاراول مراجعه نمایید.

همانطور که مشاهده می کنید درخواست HTTP ارسال شده را با استفاده از request دریافت کردیم و قوانین و Rule های مورد نظر را روی آن بررسی می کنیم. در صورتیکه هر کدام از فیلدهای دریافتی فاقد شرایط تعیین شده باشند به صفحه قبلی هدایت می شوید و می توانید پیام های خطا را به کاربر نمایش دهید. به منظور نمایش خطاها نیز می توانید از کد زیر استفاده کنید:

@if ($errors->any())
	<div class="alert alert-danger">
		<button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>
		<strong>کاربر گرامی لطفا به خطاهای زیر توجه فرمایید</strong>
			<ul>
				@foreach ($errors->all() as $error)
					<li>{{ $error }}</li>
				@endforeach
			</ul>
	</div>
@endif

امیدوارم این آموزش مورد توجه شما قرار گرفته باشد. لطفا نظرات و پیشنهادات خود را با ما در میان بگذارید.

 

آموزش اعتبار سنجی داده ها در لاراول - 4.2 از 5 بر اساس 150 رای

امتیاز کاربران

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

دیدگاهی وجود ندارد

2017 © Copyright کليه حقوق مادی و معنوی براي چسبون محفوظ است و هرگونه کپی برداری پیگرد قانونی دارد.