رتبه موضوع:
  • 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 |‌ مدیریت کانال تلگرام
پاسخ
 


موضوعات مشابه ...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  گرفتن آپدیت های وب هوک تلگرام در لاراول Mr.AMiR 6 157 09-19-2017, 04:30 AM
آخرین ارسال: Bvk.Programmer
  خطای نصب لاراول dmbehrouz 0 25 09-07-2017, 01:11 PM
آخرین ارسال: dmbehrouz
  مشکل افت سرعت وقتی از لاراول به جای php استفاده می کنم Zahir 1 79 08-31-2017, 08:40 AM
آخرین ارسال: imanghafoori
  آموزش اعتبار سنجی در لاراول 5 alihossein 5 1,183 07-30-2017, 08:47 AM
آخرین ارسال: shima71
  آموزش فارسی لاراول ۵ alihossein 7 3,680 07-28-2017, 06:44 PM
آخرین ارسال: shima71
  انتقال سایت mvc به لاراول miladhassan 1 71 07-26-2017, 09:01 AM
آخرین ارسال: fery
Question راه اندازی لاراول روی سیستم افلاین؟ fery 0 42 07-26-2017, 08:55 AM
آخرین ارسال: fery
Sad مشکل در ایجاد وبلاگ در لاراول 5.4 itroz 0 80 07-05-2017, 05:03 PM
آخرین ارسال: itroz
  بهترین پکیج acl برای لاراول چیست homeily@gmail.com 3 275 05-08-2017, 09:27 AM
آخرین ارسال: Geppeto
  لینک فایل های css و js در لاراول saeed.rahgooy@gmail.com 1 97 05-01-2017, 07:50 PM
آخرین ارسال: zootech

پرش به انجمن:


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

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

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