در مطلب های پیشین در مورد Route ها و دریافت درخواست های ورودی توسط Route ها صحبت کردیم. گفتیم که Route ها درون فایل web.php نوشته می شوند و می توانیم از توابع Callback (توابعی بدون نام) یا از کلاس های کنترل گر (Controller Class) درون Route ها استفاده کنیم. در واقع Route ها درخواستی را از طریق آدرس URL دریافت و سپس این درخواست ورودی را به یک تابع Callback یا یک کلاس کنترل گر می فرستند.

Route ها می توانند بر اساس نوع درخواست ورودی، یکی از نوع های درخواست های HTTP مانند GET یا POST یا PUT یا DELETE یا  یا باشند. در لاراول کلاس Route دارای متدهای همنام با متدهای HTTP است. به صورت پیش فرض یک درخواست از طریق URL به اسکریپت فعلی فرستاده می شود، برای اداره کردن این درخواست باید از متد ()Route::get استفاده کنیم. همچنین در مطلب های پش نشان دادیم که باید ایجاد یک نمونه از کلاس Request می توانیم آدرس URL را بدست آوریم. در این مطلب می خواهیم جنبه های دیگری از کلاس Request را نشان دهیم.

لاراول اداره کردن درخواست های HTTP

لاراول -مفهوم Route

لاراول نوشتن Route

لاراول Route ها با پارامترهای اختیاری

لاراول – استفاده از عبارت با قاعده در Route

در این مطلب می خواهیم در مورد پردازش رشته کوئری توسط متد ()Request:query صحبت کنیم. همانطور که پر مطلب فرستادن داده بوسیله آدرس URL به سایت توضیح دادیم که توسط رشته کوئری می توانیم به Route لاراول داده هایی را بفرستیم. بنابراین چون رشته کوئری را بوسیله آدرس URL می فرستیم، Route باید توسط متد ()get درخواست ها را اداره کند. در زیر یک Route ساده برای آدرس ریشه سایت ایجاد کرده ایم. سپس یک رشته کوئری را به انتهای آدرس ریشه و به صورت زیر اضافه کرده ایم.

بدست آوردن رشته کوئری در لاراول و تابع های ()array_keys و ()array_values در پی اچ پی

در خط ۲ از کدهای زیر ابتدا توسط عبارت use مسیر (فضای نام) کلاس Request را به ابتدای فایل ضمیمه کرده ایم. سپس درون تابع Callback (تابع بی نام) درون Route نمونه ای (شی – متغیری) از کلاس Request ایجاد کرده ایم تا بتوانیم درون بدنه تابع بی نام، به اعضای کلاس Request دسترسی داشته باشیم. درون بدنه تابع بی نام متغیر query$ خروجی متد ()query را نگه می دارد. خروجی متد ()query یک آرایه انجمنی است که هر کلید آن یک کلید از رشته کوئری و مقدار هر کلید برابر با مقدار هر کلید در رشته کوئری است.

در خط ۷ از کد بالا سپس توسط تابع ()array_keys فهرستی از نام کلیدهای درون آرایه متغیر ()array_keys برگشت داده می شود. تابع ()array_keys به عنوان ورودی یک آرایه یا متغیری از نوع آرایه را دریافت و سپس یک آرایه ساده شامل فهرستی از کلیدهای درون آرایه ورودی را برگشت می دهد. به عنوان مثال شما می توانید توسط تابع ()in_array و همانند کد زیر استفاده کنید تا بررسی کنید که آیا یک کلید مشخص مانند name آیا درون خروجی تابع ()array_keys وجود دارد.

همچنین در کد زیر در خط ۷ از تابع ()array_values استفاده شده است تا بتوانیم مقدارهایی یک آرایه را نشان دهیم. بازهم آرایه query$ به عنوان ورودی فرستاده شده است ولی این بار مطابق شکل زیر مقدار کلیدهای درون رشته کوئری برگشت داده شده اند. بنابراین به طور کلی اگر بخواهید فهرست کلید های یک آرایه را بدست آورید باید از تابع ()array_keys و اگر بخواهید فهرستی از مقدارهای یک آرایهرا بدست آورید، باید از تابع ()array_values استفاده کنید.

در کدهای زیر به جای نمایش فهرست کلیدها یا فهرست مقدارها، تنها مقدار کلید age را نشان داده ایم. سپس درون یک شرط if … else if .. else سن کاربر توسط مقدار متغیر age$ بررسی شده است.