رتبه موضوع:
  • 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
پاسخ
 


موضوعات مشابه ...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  آموزش فارسی لاراول ۵ alihossein 5 3,056 03-19-2017, 05:59 PM
آخرین ارسال: meysam_biz
  ساخت authentication شخصی یا استفاده از authentication لاراول meysam_biz 0 7 03-19-2017, 05:38 PM
آخرین ارسال: meysam_biz
  درخواست راهنمایی : تعریف سطوح دسترسی کاربری در لاراول Bvk.Programmer 11 861 02-16-2017, 10:09 PM
آخرین ارسال: ansar
  # سوال : آموزش ساخت ربات تلگرام با پکیج irazasyed/telegram-bot-sdk Bvk.Programmer 1 350 02-16-2017, 09:55 PM
آخرین ارسال: ansar
  بهترین پکیج acl برای لاراول چیست homeily@gmail.com 2 96 12-18-2016, 08:43 AM
آخرین ارسال: hamo
  آموزش اعتبار سنجی در لاراول 5 alihossein 4 921 11-20-2016, 07:12 AM
آخرین ارسال: حمید رﺽا کمالی
  نحوه ایجاد Token-Based Authentication(oauth2) در لاراول با استفاده از passport anonymox 0 111 11-12-2016, 06:27 AM
آخرین ارسال: anonymox
  آموزش روتینگ routing در لاراول 5 alihossein 2 1,347 11-12-2016, 04:37 AM
آخرین ارسال: حمید رﺽا کمالی
  اجرای کوئری در لاراول amirbakhtiari 1 79 11-06-2016, 07:50 AM
آخرین ارسال: hamo
  آموزش کار با دیتابیس در لاراول 5 alihossein 6 1,988 10-27-2016, 01:01 PM
آخرین ارسال: sempaisaleh

پرش به انجمن:


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

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

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