ورودی از کاربر در لاراول

در این بخش می خواهیم ورودی های کاربر را بررسی کنیم

تمام ورودی های لاراول همه در یک شی از جنس

 Illuminate\Http\Request

می باشد

به طور مثال برای استفاده کردن کردن از این شی در کنترلر های خودمان می بایست مشابه شکل عمل کنیم


class TestController extends Controller
{
    //
        public function InputFromUser(Request $request){
            //Used Request object
            }
            }

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

اگر با زبان PHP آشنا باشید که اگه بخواهید لاراول بخوانید باید آشنا باشید برای گرفتم یک ورودی GET به اسم username میبایست به شکل زیر عمل می کردیم


   $username=$_GET['username'];

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

1- درخواست Get

خوب برای گرفتن ورودی Get باید از کد دستوری زیر استفاده کنیم


class TestController extends Controller
{
//
   public function InputFromUser(Request $request){
           //GET Request
                   $username=$request->get("username");
                          echo $username;
                            }
                            }

با استفاده از کد بالا ما یک متغیر ورودی را با اسم username را گرفته و در متغیری به همین نام می ریزیم

2-درخواست POST

مرحله بعدی برای گرفتن ورودی از کاربر با متد Post است

class TestController extends Controller
{
  //
     public function InputFromUser(Request $request){
          //GET Request
               $username=$request->get("username");
                    echo $username;
          //POST Request Method
          $password=$request->post("password");
            }
            }


در تکه کد بالا ما پسورد را به متد POST از کاربر در یافت کرده ایم و می توانیم پردازش های خودمان را روی ان انجام بدهیم

3- ارسال متغیر در URL پردازش آن

دوستان اگر یادتون باشه گفتیم که میشه در URL نیز متغیر پاس داد و روی اون کار کرد برای این کار

Route::get('user/{id}', 'UserController@update');

در کد بالا id یک متغیر است که در URL نهان شده و همزمان کاربر ورودی نیز داده است!!

به طور مثال ادرس ارسالی به شکل زیر است

http://example.cm/user/185?username=mehrdad

در URL بالا ما یک ID با مقدار 185 و یک ورودی با با مشخصه username ارسال کرده ایم

برای پردازش این دو همزمان

class UserController extends Controller
{
public function update(Request $request, $id)
    {
           //
              }
              }

4- نکات کاربردی

الف- فکر کنید شما می خواهید بررسی کنید که ورودی کاربر از چه نوع است POST،GET،..

برای این کار که بررسی کنیم POST هست یا نه از تکه کد زیر استفاده میکنیم


$method = $request->method();
if ($request->isMethod('post')) {
   //
   }

ب- شاید شما بخواهید که URL ارسالی را بررسی کیند


        $url = $request->url();

ج-شاید شما بخواهید که محدودیت و یا متغیر خاصی را از ورودی دریافت نمایید

نکته: متد های زیر خروجی شان به صورت آرایه است

همه ورودی ها

        $url = $request->all();

می خواهید یک متغیر را نشان ندهید


       $password = $request->except('password');

در کد بالا پسورد نمایش داده نمی شود و مابقی ورودی ها دریافت خواهد شد

متد ها و توابع زیاد دیگر دارد که در صورت نیاز می توانید انها رابررسی کنید

منبع