laravel創建響應、設置響應頭、重定向等

所有路由和控制器處理完業務邏輯之后都會返回一個發送到用戶瀏覽器的響應,laravel提供了多種方式返回響應。最簡單的是在路由或控制器中返回一個字符串laravel底層會自動創建一個完整的http響應返回。

Route::get('index',?function?()?{ ????return?'study?laravel' });

如果返回的是一個數組,那么laravel會自動轉換為json格式輸出,另外,以下的代碼是等價的:

return?['name'?=>?'laravel',?'email'?=>?'laravel@qq.com']; return?response(['name'?=>?'laravel',?'email'?=>?'laravel@qq.com']); return?response()->json(['name'?=>?'laravel',?'email'?=>?'laravel@qq.com']);

添加響應頭

添加響應頭非常簡單,只需要使用header方法即可,可以在使用多個header方法設置多個響應頭。

return?response('study?laravel') ????????->header('Content-Type',?'text/html;?charset=UTF-8') ????????->header('Php-Version',?'7.4');

還可以使用withHeaders 來一次設置多個響應頭,該方法接受一個數組做第一個參數。

return?response('study?laravel') ?????????->withHeaders([ ?????????????'Conetnt-Type'?=>?'text/html;?charset=UTF-8', ?????????????'Php-Version'?=>?'7.4' ?????????]);

重定向

在laravel中,實現重定向的也有幾種方法。可以通過Route::redirect或函數redirect。因為Route::redirect這個屬于路由相關的知識,這里,我們來看redirect函數。

return?redirect('index/users');

經常的,當一個表單提交時,驗證失敗,我們就會返回到之前的表單頁面,這里,需要使用back函數來完成。

return?back();

還可以重定向到命名路由中,如果路由中有參數,那么通過第二個參數傳遞:

return?redirect()->route('news',?['id'?=>?23]);

經常的,我們在進行一些邏輯處理后,會重定向到另一個控制器接著進行下一步操作。比如,注冊一個東西需要填寫多個表單時。

return?redirect()->action('IndexController@index',?['id'?=>?1]);

有時候你需要重定向到應用外的域名,那么還可以使用away來完成該操作。它是不帶任何編碼的

return?redirect()->away('http://google.com');

其它的響應類型

視圖響應是非常常見的,可以使用view方法來設置

return?response() ????->view('welcome',?$data,?200) ????->header("Content-Type",?"text/html;charset=utf-8");

除此之外,laravel還提供下載的響應、文件響應等,因為它們在日常工作中用的不是很多,這里就不介紹了。有興趣的同學可以自行去查詢相關文檔。

推薦教程:《laravel框架

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊12 分享