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


موضوعات مشابه ...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  خطای نصب لاراول dmbehrouz 1 52 11-27-2017, 10:34 AM
آخرین ارسال: jergis
  صفحه بندی در لاراول ۵.۵ sadaf 0 73 10-26-2017, 09:26 PM
آخرین ارسال: sadaf
  سرور برای لاراول mahmood_20050 0 51 10-24-2017, 10:00 AM
آخرین ارسال: mahmood_20050
  گرفتن آپدیت های وب هوک تلگرام در لاراول Mr.AMiR 6 279 09-19-2017, 04:30 AM
آخرین ارسال: Bvk.Programmer
  مشکل افت سرعت وقتی از لاراول به جای php استفاده می کنم Zahir 1 118 08-31-2017, 08:40 AM
آخرین ارسال: imanghafoori
  آموزش اعتبار سنجی در لاراول 5 alihossein 5 1,360 07-30-2017, 08:47 AM
آخرین ارسال: shima71
  آموزش فارسی لاراول ۵ alihossein 7 3,949 07-28-2017, 06:44 PM
آخرین ارسال: shima71
  انتقال سایت mvc به لاراول miladhassan 1 103 07-26-2017, 09:01 AM
آخرین ارسال: fery
Question راه اندازی لاراول روی سیستم افلاین؟ fery 0 67 07-26-2017, 08:55 AM
آخرین ارسال: fery
Sad مشکل در ایجاد وبلاگ در لاراول 5.4 itroz 0 103 07-05-2017, 05:03 PM
آخرین ارسال: itroz

پرش به انجمن:


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

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

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