آموزش لاراول: بررسی کامل Response ها در لاراول
آموزش لاراول (Laravel) زمان مطالعه: 5 دقیقه تاریخ انتشار: 1 سال قبل

آموزش لاراول: بررسی کامل Response ها در لاراول

در قسمت قبل، Request ها در لاراول را بررسی کردیم و در این قسمت از آموزش لاراول به بررسی Response ها در لاراول می پردازیم. در هنگام استفاده و پیاده سازی پروژه های خود با لاراول شما باید کار با پاسخ ها در لاراول را به خوبی بلد باشید و آشنایی کاملی با آن داشته باشید در ادامه همراه هیرود باشید تا بهتون بگیم Response لاراول چیست؟

 

Response لاراول چیست؟

تمام Route ها و Controller ها در لاراول باید پاسخی را به مرورگر کاربر برگردانند. در لاراول چندین روش مختلف برای بازگشت Response ها وجود دارد که در ادامه به بررسی آن ها می پردازیم.

 

ایجاد Response در لاراول

ساده ترین روش برای ایجاد Response در Laravel به صورت زیر خواهد بود. رشته Hello World بازگشتی در مثال زیر به صورت خودکار توسط فریمورک لاراول به full HTTP response تبدیل می شود.

Route::get('/', function () {
    return 'Hello World';
});

همچنین می توانیم به جای یک رشته یک آرایه را به عنوان پاسخ برگردانیم.

Route::get('/', function () {
    return [1, 2, 3];
});

 

استفاده از Response Objects در لاراول

همانطور که گفتیم زمانی که شما یک رشته یا آرایه را به عنوان پاسخ در Route خود بر می گردانید، درواقع در حال برگرداندن یک نمونه کاملی از Illuminate\Http\Response instances هستید. شاید می توانید خودتان با برگشت یک نمونه از Response مواردی مانند کدهای وضعیت یا headers های HTTP Response را کنترل کنید.

Route::get('home', function () {
    return response('Hello World', 200)
                  ->header('Content-Type', 'text/plain');
});

 

اتصال Header سفارشی به Response در لاراول

شما می توانید با استفاده از متد header یا withHeaders ، هدرهای سفارشی خود را به پاسخ بازگشتی اضافه کنید.

return response($content)
            ->header('Content-Type', $type)
            ->header('X-Header-One', 'Header Value')
            ->header('X-Header-Two', 'Header Value');

با withHeaders می توانید تمامی هدرها را در یک آرایه یکجا متصل کنید.

return response($content)
            ->withHeaders([
                'Content-Type' => $type,
                'X-Header-One' => 'Header Value',
                'X-Header-Two' => 'Header Value',
            ]);

 

اتصال Cookies به Response در لاراول

می توانید با استفاده از متد cookie، کوکی مورد نظر را ایجاد و همراه پاسخ بازگشتی ارسال کنید.

return response($content)
                ->header('Content-Type', $type)
                ->cookie('name', 'value', $minutes);

 

Redirect در لاراول

ما با استفاده از redirect در لاراول می توانیم کاربر را به یک URL خاص هدایت کنیم.Redirect responses نمونه ای کلاس Illuminate\Http\RedirectResponse هستند. روش های مختلفی برای ایجاد redirect در لاراول وجود دارد که ساده ترین روش آن به شکل زیر است که کاربر به آدرس home/dashboard منتقل می شود.

Route::get('dashboard', function () {
    return redirect('home/dashboard');
});

 

هدایت کاربر به location قبل در لاراول

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

Route::post('user/profile', function () {
    // Validate the request...

    return back()->withInput();
});

 

redirect با استفاده از نام Route در لاراول

می توانیم برای هدایت کاربر به یک مسیر از نام آن مسیر استفاده کنیم. با استفاده از متد route می توانیم این کار را انجام دهیم.

return redirect()->route('login');

اگر مسیر دارای پارامتر ورودی است می توانیم به شکل زیر در یک آرایه پارامترهای مسیر را مشخص کنیم.

// For a route with the following URI: profile/{id}

return redirect()->route('profile', ['id' => 1]);

 

ریدایرکت به Controller Action در لاراول

برای ریدارکت در لاراول به یک Action خاص در یک Controller می توانیم مانند مثال زیر عمل کنیم.

return redirect()->action('[email protected]');

در صورت وجود پارامتر ریدایرکت به شکل زیر خواهد بود.

return redirect()->action(
    '[email protected]', ['id' => 1]
);

 

ریدایرکت با Flash Message در لاراول

شما می توانید در هنگام هدایت کاربر به یک URL جدید پیامی را Session در قالب flash message ارسال و در سمت رابط کاربری نمایش دهید.

Route::post('user/profile', function () {
    // Update the user's profile...

    return redirect('dashboard')->with('status', 'Profile updated!');
});

در مثال بالا پیامی با عنوان status و مقدار profile updated همراه به ریدایرکت ارسال شده است. حالا برای نمایش این پیام باید به روش زیر عمل کنیم.

@if (session('status'))
    <div class="alert alert-success">
        {{ session('status') }}
    </div>
@endif

 

View Response در لاراول

اگر در هنگام برگرداندن یک View نیاز دارید تا مواردی چون headers و status code را خودتان مدیریت کنید می توانید از روش زیر استفاده کنید.

return response()
            ->view('hello', $data, 200)
            ->header('Content-Type', $type);

 

JSON Response در لاراول

با استفاده از روش زیر میتوانید داده را به صورت JSON برگردانید. در این روش Content-Type header به صورت خودکار application/json تنظیم می شود.

return response()->json([
    'name' => 'Abigail',
    'state' => 'CA',
]);

 

دانلود فایل در لاراول

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

return response()->download($pathToFile);

return response()->download($pathToFile, $name, $headers);

return response()->download($pathToFile)->deleteFileAfterSend();

 

ممنون که تا پایان این مقاله همراه ما بودید برای یادگیری لاراول سایر آموزش ها و مقالات آموزش برنامه نویسی هیرود را از دست ندهید.

امتیاز به این مقاله فراموش نشه
میانگین امتیاز 5 از 5 ، کل امتیازات: 1
امیر اشرفی
نویسنده: امیر اشرفی

امیر اشرفی هستم مدیر و بنیان گذار آکادمی هیرود، حدود 10 سالی میشه که در حوزه برنامه نویسی و توسعه وب و موبایل فعالیت میکنم و تونستم تجربه خوبی در این حوزه بدست بیارم. یکی از علاقه هام انتقال تجربه هایی که در اختیار دارم به دیگرانه و باعث میشه حالم خوب بشه و اشتیاق یادگیریم افزایش پیداکنه، در واقع هیرود نتیجه حال خوبیامه :)

دوره های قهرمانی پیشنهادی

اولین قدم برنامه نویسی

اولین قدم برنامه نویسی

برنامه نویسی قطعا می تواند انتخاب مناسب ، پرچالشی و بروزی برای شغل آینده شما باشد. اگر حرفه و آموزش...

سبد خرید

سبد خرید شما خالی است.

پیش به سوی قهرمانی