درس 5 - سیستم Routing لاراول
آموزش لاراول بصورت رایگان

در فریمورک لاراول تمامی درخواست ها به سمت اپلیکیشن که میسازید تنها از مسیر route ها ممکن است. اساسا" سیستم routing یا مسیریابی لاراول درخواست ها را به کنترلر های متناظر ارسال میکند.

در این درس به بحث routing در لاراول خواهیم پرداخت.

route ها در لاراول به دسته های زیر تقسیم میشوند: 

 

  1. Basic Routing
  2. Route parameters
  3. Named Routes

 

Basic Routing در فریمورک لاراول

تمامی route های فریمورک لاراول درون فایلی در مسیر app/routes.php ذخیره سازی میشود.در نسخه های جدیدتر این فایل درون یک مسیر به نام routes قرار دارد که به سه فایل جداگانه ی زیر دسته بندی شده است:

 

  • api.php
  • console.php
  • web.php

اگر از نسخه های جدیدتر لاراول استفاده میکنید بجای فایل routes.php فایل web.php را برای نوشتن route های تحت وب استفاده کنید.

در این فایل ها route به اپلیکیشن لاراول اعلام میکند که به ازای هر url یا آدرس وب چه پاسخی را از کجا به کاربر نشان بدهد.ممکن است این درخواست به یک متود خاص از یک کنترل خاص ارسال شود و پاسخ دریافت شود.

در دو تصویر زیر محل قرار گیری فایل routes.php برای نسخه های قدیمیتر از 5.6 لاراول و همچنین محل قرارگیری پوشه ی routes که از نسخه ی 5.6 به بعد قرار گرفته است را مشاهده میکنید.

محل قرارگیری فایل routes.php در نسخه های قدیمی فریمورک لاراول
محل قرار گیری فایل routes.php در نسخه های جدید لاراول

قطعه کد زیر یک مثال پایه ای برای استفاده از route ها میباشد. که یک view به نام welcome را لود میکند.

Route::get ('/', function () {
   return view('welcome');});

مثال زیر را برای درک بهتر سیستم routing در فریمورک لاراول در نظر بگیرید.

در فایل مربوط به route ها که در بالاتر مسیر قرار گیری آن در پروژه های لاراول را مشاهده کردید کد زیر را بنویسید.

<?php
Route::get('/', function () {
   return view('welcome');
});

سپس به مسیر resources/view/welcome.blade.php بروید اگر این فایل وجود ندارد ایجاد کنید و کد زیر را درون آن بنویسید.

<!DOCTYPE html>
<html>
   <head>
      <title>Laravel</title>
      <link href = "https://fonts.googleapis.com/css?family=Lato:100" rel = "stylesheet" 
         type = "text/css">
      
      <style>
         html, body {
            height: 100%;
         }
         body {
            margin: 0;
            padding: 0;
            width: 100%;
            display: table;
            font-weight: 100;
            font-family: 'Lato';
         }
         .container {
            text-align: center;
            display: table-cell;
            vertical-align: middle;
         }
         .content {
            text-align: center;
            display: inline-block;
         }
         .title {
            font-size: 96px;
         }
      </style>
   </head>
   
   <body>
      <div class = "container">
         
         <div class = "content">
            <div class = "title">Laravel 5.1</div>
         </div>
			
      </div>
   </body>
</html>

مکانیسم routing در فریمورک لاراول در تصویر زیر نشان داده شده است.

مکانیسم مسیریابی یا routing در فریمورک laravel

در زیر جزئیات مکانیسم routing فریمورک لاراول را بررسی میکنیم.

  • قدم اول :‌ در ابتدا باید آدرس اصلی یا ریشه فریمورک لاراول اجرا شود.
  • قدم دوم :‌ در مرحله ی بعدی باید مسیری که در فایل route ها ایجاد شده است فراخوانی شود. معمولا به این صورت است که بعد از ادرس اصلی یا روت سایت یک / قرار میگیرد و سپس مقدار تعریف شده در route نوشته میشود مثلا example.com/login 
  • قدم سوم : تابعی فایل تمپلیت view را فراخوانی میکند که در مسیر resources/views/welcome.blade.php قرار گرفته است. توجه کنید موقع صدا زدن تابع view فقط نام خالی تمپلیت نوشته میشود مثلا در اینجا welcome است و .blade.php نوشته نمیشود.

سپس اگر به مسیر site.com مراجعه شود نتیجه ی زیر نمایش داده میشود.

دوره ی آموزش فریمورک لاراول

 

Route Parameters در لاراول

گاهی اوقات در اپلیکیشن لاراول نیاز دارید که پارامترهای ارسال شده توسط url را استفاده کنید. به این منظور باید درون فایل route این کار را انجام دهید.

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

  • Required Parameters
  • Optional Parameters

Required Parameters یا پارامترهای اختیاری در route لاراول

گاهی توسعه دهنده ی لاراول نیاز دارد که پارامترهای اختیاری تعریف کند به همین منظور بعد از نام پارامتر علامت سوال ( ? ) قرار میگیرد.مقدار پیشفرض یا default نیز مهم است.

به مثال route زیر توجه کنید که یک پارامتر اختیاری به نام name تعریف شده است.

Route::get('user/{name?}', function ($name = 'AVASAM') { return $name;});

در مثال بالا بررسی میشود و در صورت اینکه name برابر با AVASAM باشد مقدار آن برگردانده میشود.

 

Named Routes در لاراول

مسیرها یا route های نام گذاری شده یک راه برای راحت تر کردن تعریف و استفاده از route ها در فریمورک لاراول است.

بعد از اینکه route تعریف میشود یک تابع به نام name صدا زده میشود و نام آنرا تعریف میکند.

در زیر یک مثال برای استفاده از name در route های لاراول میباشد.

Route::get('user/profile', 'UserController@showProfile')->name('profile');

در route بالا کاربر در مسیر user/profile به کنترلری به نام UserController و سپس متودی به نام showProfile هدایت میشود و این مسیر کلا با نام ساده ی profile قابل دسترسی است.

 

اتمام درس 5 آموزش فریمورک لاراول