رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
آموزش پاسخ های HTTP در لاراول 5
#1
پاسخ ساده

بعد از دریافت درخواست در لاراول و انجام عملیات مورد نظر باید پاسخی هم ایجاد کنیم. ساده ترین نوع پاسخ return رشته هست که قبلا هم با آن آشنا شدیم :

کد پی‌اچ‌پی:
Route::get('/', function()
{
 
   return 'Hello World';
}); 


ایجاد پاسخ دلخواه

با استفاده از کلاس Response یا تابع کمکی response می توانیم یک پاسخ دلخواه ایجاد کنیم مثلا مثال زیر را در نظر بگیرید :


کد پی‌اچ‌پی:
return response($content$status)
 
             ->header('Content-Type'$value); 


محتویات را به عنوان پارامتر اول و [url=http://en.wikipedia.org/wiki/List_of_HTTP_status_codes][/url]status code را به عنوان پارامتر دوم به آن بدهیم و همچنین با استفاده از متد header نوع هدر را هم مشخص کنیم مثلا application/pdf.




همینطور که در مثال زیر می بینید می توانید یک فایل ویو و همچنین یک فایل کوکی را هم به عنوان پاسخ ارسال کنید و استفاده از متدها به صورت زنجیره ای امکان پذیر است.


کد پی‌اچ‌پی:
return response()->view('hello')->header('Content-Type'$type)
 
                ->withCookie(cookie('name''value')); 


Redirect


با استفاده از تابع کمکی redirect و افزودن مسیر به آن می توانیم به مسیر مورد نظر هدایت شویم.


کد پی‌اچ‌پی:
return redirect('user/login');
 
return 
redirect('user/login')->with('message''Login Failed'); 

همچنین می توانیم به همراه ریدایرکت کردن یک داده flash هم ارسال کنیم.


با استفاده از متد back می توانیم به مسیر قبلی که بودیم دوباره هدایت شویم.

کد پی‌اچ‌پی:
return redirect()->back();
 
return 
redirect()->back()->withInput(); 


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


می توانیم با استفاده از نام مسیر که در فایل routes.php تعریف میکنیم هم ریدایرکت را با استفاده از متد route انجام دهیم.

کد پی‌اچ‌پی:
return redirect()->route('login');
 
// For a route with the following URI: profile/{id}
 
return redirect()->route('profile', [1]); 


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


می توانیم با استفاده از متد action به یک اکشن در کلاس کنترلر دیگری هدایت شویم که بایستی نام کلاس با فضای نام آن نوشته شود و همچنین در صورت وجود پارامتر به صورت آرایه به عنوان پارامتر دوم به آن اضافه می کنیم.

کد پی‌اچ‌پی:
return redirect()->action('App\Http\Controllers\HomeController@index  ');
 
return 
redirect()->action('App\Http\Controllers\UserController@profi  le', ['user' => 1]); 


ایجاد پاسخ به صورت JSON

با استفاده از متد json که یک آرایه را به عنوان پارامتر ورودی دریافت میکنید و خروجی آن به صورت JSON می باشد.

کد پی‌اچ‌پی:
return response()->json(['name' => 'Abigail''state' => 'CA']); 


ایجاد پاسخ به صورت دانلود فایل

با استفاده از متد download که مسیر فایل را به عنوان پارامتر می گیرد و دو پارامتر اختیاری دیگر که نام فایل و هدر های فایل هست را دریافت میکند.

کد پی‌اچ‌پی:
return response()->download($pathToFile);
 
return 
response()->download($pathToFile$name$headers);
 
return 
response()->download($pathToFile)->deleteFileAfterSend(true); 


در مثال سوم فایل بعد از دانلود حذف خواهد شد.

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


موضوعات مشابه ...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  آموزش اعتبار سنجی در لاراول 5 alihossein 4 761 11-20-2016, 07:12 AM
آخرین ارسال: حمید رﺽا کمالی
  آموزش روتینگ routing در لاراول 5 alihossein 2 1,117 11-12-2016, 04:37 AM
آخرین ارسال: حمید رﺽا کمالی
  آموزش کار با دیتابیس در لاراول 5 alihossein 6 1,533 10-27-2016, 01:01 PM
آخرین ارسال: sempaisaleh
  آموزش Migration در لاراول 5 alihossein 9 1,145 08-15-2016, 04:17 PM
آخرین ارسال: Naser.SherafatiNia
  آموزش فارسی لاراول ۵ alihossein 4 2,851 07-22-2016, 04:16 PM
آخرین ارسال: elham_malekmohamadi
  # سوال : آموزش ساخت ربات تلگرام با پکیج irazasyed/telegram-bot-sdk Bvk.Programmer 0 228 04-25-2016, 04:54 PM
آخرین ارسال: Bvk.Programmer
  درخواست آموزش کار با پکیج intervention/image Bvk.Programmer 6 491 04-18-2016, 05:52 PM
آخرین ارسال: hamo
Rainbow آموزش : پکیچ کاربردی ajax-blade Bvk.Programmer 0 199 02-15-2016, 06:04 PM
آخرین ارسال: Bvk.Programmer
  آموزش Session ها در لاراول 5 alihossein 1 659 01-29-2016, 12:33 PM
آخرین ارسال: SajadDP
  آموزش کنترلر ها در لاراول 5 alihossein 3 963 01-07-2016, 02:28 PM
آخرین ارسال: Bvk.Programmer

پرش به انجمن:


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

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

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