رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
آموزش درخواست های HTTP در لاراول 5
#1
در فریم ورک لاراول درخواست های http که با متدهای GET , POST ,... ارسال می کنیم را می توانیم مقادیر آنها را با استفاده از کلاس Request دریافت کنیم :

کد پی‌اچ‌پی:
$name Request::input('name'); 

نکته : برای استفاده از هر کلاسی در کلاس های کنترلر ابتدا باید آن کلاس را با استفاده از دستور use ایمپورت کنیم. در مثال بالا هم بایستی به این صورت قبل از تعریف کلاس کنترلر موردنظر کلاس Request را ایمپورت کنیم. 

کد پی‌اچ‌پی:
use Request

همچنین می توانیم به روش دیگری هم مقادیر را به دست بیاوریم. به این صورت که ابتدا کلاس Illuminate\Http\Request را به کنترلر مورد نظر ایمپورت می کنیم سپس دستور Request $request را به عنوان پارامتر به اکشن مورد نظر می دهیم. در طول برنامه داخل اکشن می توانیم از متغیر request$ استفاده کنیم.
کد پی‌اچ‌پی:
<?php namespace App\Http\Controllers;
 
use 
Illuminate\Http\Request;
use 
Illuminate\Routing\Controller;
 
class 
UserController extends Controller {
 
 
   /**
     * Store a new user.
     *
     * @param  Request  $request
     * @return Response
     */
 
   public function store(Request $request)
 
   {
 
       $name $request->input('name');
 
 
       //
 
   }
 


می توانیم برای یک ورودی مقداری پیش فرض هم تعیین کنیم تا در صورتی که مقداری برای آن ست نشده بود این مقدار جایگزین آن شود :
کد پی‌اچ‌پی:
$name Request::input('name''Sally'); 

با استفاده از متد has می توانیم بررسی کنیم که آیا ورودی با این مقدار وجود دارد یا خیر :


کد پی‌اچ‌پی:
if (Request::has('name'))
{
 
   //


با استفاده از متد all می توانیم تمامی ورودی ها را دریافت کنیم.
کد پی‌اچ‌پی:
$input Request::all(); 

همچنین می توانیم فقط برخی ورودی ها یا همه ورودی ها به جز برخی را دریافت کنیم.
کد پی‌اچ‌پی:
$input Request::only('username''password');
 
$input Request::except('credit_card'); 


هنگامی که مقدار ورودی یک آرایه باشد می توانیم با استفاده از نقظه به مقدار آیتم مورد نظر دست پیدا کرد :
کد پی‌اچ‌پی:
$input Request::input('products.0.name'); 

همچنین می توانیم به مقادیر flash که توسط سشن ایجاد می شوند و به صورتی هستند که فقط برای درخواست بعدی معتبر هستند و از بین می روند هم به صورت های زیر دسترسی داشته باشیم:

کد پی‌اچ‌پی:
Request::flash();
Request::flashOnly('username''email');
 
Request::flashExcept('password'); 


در مثال دوم و سوم هم مثل قبل که دیدیم فقط یا به جز برخی موارد دسترسی داریم.


می توانیم مقادیر ورودی ها را دوباره با استفاده flash به صفحه قبلی یا صفحه دیگری ارسال کنیم :

کد پی‌اچ‌پی:
return redirect('form')->withInput();
return 
redirect('form')->withInput(Request::except('password')); 


کاربرد آن در فرم ها می باشد که اگر بعد از اعتبارسنجی ورودی ها دارای خطایی باشد و بخواهیم دوباره به صفحه فرم بازگردیم ورودی های فرم که کاربر نوشته از بین نروند. در مثال دوم به password اجازه 

حفظ شدن ندادیم.
برای چاپ مقادیر قبلی هم باید داخل تکست باکس های فرم مقدارش را به این صورت چاپ کنیم :

کد پی‌اچ‌پی:
<input type="text" name="email" value="<?php echo old('name') ?>"
کوکی ها

می توانیم به مقدار یک کوکی هم به این صورت دسترسی داشته باشیم :

کد پی‌اچ‌پی:
$value Request::cookie('name'); 

فایل ها

فایلی که آپلود شده را می توانیم به این صورت اطلاعاتش دریافت کنیم. در مثال زیر نام فیلد فایل در فرم photo بوده است:

کد پی‌اچ‌پی:
$file Request::file('photo'); 




در مثال زیر بررسی می کند که آیا این فایل با این نام وجود دارد:


کد پی‌اچ‌پی:
if (Request::hasFile('photo'))
{
 
   //



مقداری که متد file در کلاس Request به ما می دهد یک آبجکت از کلاس Symfony\Component\HttpFoundation\File\UploadedFile که می توانید با متدهای آن برای کار با فایل کار کنید.
کد پی‌اچ‌پی:
if (Request::file('photo')->isValid())
{
 
   //




در مثال بالا بررسی می کند که آیا فایل آپلود شده صحیح و بدون خطا می باشد :


با استفاده از متد move می توانیم فایل را به مسیر مورد نظر که به عنوان پارامتر اول به آن می دهیم و همچنین نام فایل که اختیاری است ذخیره کنیم.

کد پی‌اچ‌پی:
Request::file('photo')->move($destinationPath);
 
Request::file('photo')->move($destinationPath$fileName); 



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

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


(با تشکر از حامد آریان)
قوانین انجمن لاراولیستا  | شماره تماس :‌09124783045 |‌ تلگرام :‌ 09377869283
پاسخ
 


موضوعات مشابه ...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  بهترین پکیج acl برای لاراول چیست homeily@gmail.com 2 40 12-18-2016, 08:43 AM
آخرین ارسال: hamo
  آموزش اعتبار سنجی در لاراول 5 alihossein 4 832 11-20-2016, 07:12 AM
آخرین ارسال: حمید رﺽا کمالی
  آموزش روتینگ routing در لاراول 5 alihossein 2 1,250 11-12-2016, 04:37 AM
آخرین ارسال: حمید رﺽا کمالی
  اجرای کوئری در لاراول amirbakhtiari 1 53 11-06-2016, 07:50 AM
آخرین ارسال: hamo
  آموزش کار با دیتابیس در لاراول 5 alihossein 6 1,768 10-27-2016, 01:01 PM
آخرین ارسال: sempaisaleh
  کند بودن بیش از حد اجرای لاراول feri 0 53 10-19-2016, 05:09 PM
آخرین ارسال: feri
  ایجاد نشدن همه فایل ها بعد از نصب لاراول armin4838 1 83 10-15-2016, 04:17 PM
آخرین ارسال: armin4838
  اشکال در اجرای لاراول محمد 1 97 10-13-2016, 08:14 AM
آخرین ارسال: hamo
  مشکل در راه اندازی لاراول hadi2016 2 88 09-21-2016, 11:00 AM
آخرین ارسال: hadi2016
  سئو در لاراول Mohammad 0 80 09-18-2016, 03:55 PM
آخرین ارسال: Mohammad

پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان

درباره انجمن فریم ورک لاراول

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