بخش اول - پردازش درخواست و پاسخ
در این قسمت به متدهای Response خواهیم پرداخت.
ریسپانسها، پاسخی هستند ک از سوی کنترلرها برای کلاینت return میشوند.
class UserController extends Controller
{
public function store(Request $request)
{
// ...
return response("User Stored!");
}
}
کد بالا یک نمونه از شیوه ارسال ریسپانس را نشان میدهد که یک متن پس از ذخیره کاربر، به سمت مرورگر کلاینت ارسال می شود.
معمولا برای ارسال ریسپانس از هلپر فانکشن ها استفاده می شود.
در ادامه با این هلپر ها آشنا می شویم.
1- متد response
ایجاد یک پاسخ ساده.
return response('Hello, World!');متن "Hello, World!" در مرورگر نمایش داده میشود.
2- متد header
افزودن یک هدر (header) به پاسخ.
return response('OK')->header('X-Custom-Header', 'MyValue');3- متد withHeaders
افزودن چندین header به پاسخ.
return response('Headers Set')->withHeaders([
'X-Header-One' => 'Value1',
'X-Header-Two' => 'Value2',
]);4- متد cookie
اضافه کردن cookie به پاسخ.
return response('Cookie Set')->cookie('user', 'JohnDoe', 60);5- متد withoutCookie
حذف یک cookie از پاسخ.
return response('Cookie Removed')->withoutCookie('user');6- متد view
بازگرداندن یک view به عنوان پاسخ. (فایل های Blade)
return response()->view('welcome');نمای welcome.blade.php نمایش داده میشود.
7- متد json
بازگرداندن یک JSON به عنوان پاسخ.
return response()->json(['name' => 'John', 'age' => 30]);
8- متد withCallback
اضافه کردن JSONP callback به پاسخ JSON.
return response()->json(['name' => 'John'])->withCallback('myCallback');
// Output:
// myCallback({"name":"John"});9- متد download
دانلود یک فایل از سرور.
return response()->download(storage_path('app/file.pdf'));10- متد file
نمایش یک فایل بدون دانلود.
return response()->file(storage_path('app/image.jpg'));11- متد stream
استریم دادهها (ارسال محتوا به صورت chunk-شده).
return response()->stream(function () {
echo 'Streaming content...';
});12- متد streamJson
ارسال JSON بهصورت استریم.
return response()->streamJson(['status' => 'processing']);
13- متد eventStream
ارسال دادهها بهصورت Server-Sent Events (SSE).
return response()->eventStream(function ($stream) {
$stream->push(['message' => 'Hello, World!']);
});14- متد streamDownload
دانلود یک فایل بهصورت stream.
return response()->streamDownload(function () {
echo 'File content...';
}, 'myfile.txt');15- متد redirect
تغییر مسیر (redirect) به یک URL.
return redirect('/home');16- متد route
تغییر مسیر (redirect) به یک route.
return redirect()->route('dashboard');17- متد action
تغییر مسیر (redirect) به یک controller action.
return redirect()->action([HomeController::class, 'index']);
18- متد away
تغییر مسیر (redirect) به یک URL خارجی.
return redirect()->away('https://google.com');19- متد with
ارسال دادههای session همراه با redirect.
return redirect()->route('home')->with('message', 'Welcome back!');یک message در session ذخیره میشود و پس از redirect قابل دسترسی است.
20- متد back
بازگشت به صفحهی قبلی.
return redirect()->back();
21- متد withInput
ارسال دادههای form input در session هنگام redirect.
return redirect()->back()->withInput();
#laravel #لاراول #فصل_۶
@AmirhDeveloper
.