上篇笔记刚刚记录完请求 这节就来说说响应,一般来说啊 一个请求对应一个响应,用户都请求咱了 咱必须做一些逻辑后给人家反馈是不是,这就是响应。
1 基本的响应
我们前几篇笔记已经用过很多响应了,其中包括字符串:
Route::get('/', function () { return '欢迎欢迎'; });
注:我们写的是返回简单的字符串,但是Laravel框架会自动把它组成一个响应。
1.1 自定义响应头
Route::get('/', function () { return (new IlluminateHttpResponse('hello', 200))->header('Content-Type', 'text/html'); });
我们还可以使用response全局帮助函数来生成相应,如果想要指定多个响应头 可以链式操作↓
Route::get('/', function () { return response('hello') ->header('Content-Type', 'text/html') ->header('something', 'something'); });
1.2 添加cookie信息
我们可以使用withCookie函数来添加cookie信息。
Route::get('/', function () { return response('hello') ->header('Content-Type', 'text/html') ->withCookie('cookie-name', 'value'); });
1.3 返回视图
之前我们使用的是帮助函数view(),今天来点儿麻烦的- -:
Route::get('/', function () { return response() ->view('welcome') ->withCookie('newCookie', 'home'); });
1.4 返回JSON
当我们开发API时 JSON是必须会的哦:
Route::get('/', function () { return response() ->json([ "name" => "k", "age" => 24 ]); });
1.5 重定向
重定向我们之前也使用过,回顾下吧:
Route::get('/', function () { return redirect()->action('AdminHomeController@index'); });
有的时候啊 我们需要重定向到当前页面的前一个位置,可以用back函数:
Route::get('/', function () { // withInput可以将之前页面用户输入的信息一起返回去,这样方便用户不用重复输入。 return back()->withInput(); });
当用户输入正确后重定向 应该给人家一些提示是吧 我们可以用一次性的session来传递:
Route::get('/', function () { return redirect()->action('AdminHomeController@index')->with('status', 'Success'); });
@if(session('status')) <div class="alert alert-success"> {{ session('status') }} </div> @endif