Laravel的HTTP请求
use Illuminate\Http\Request;
引入Request类
all
获取所有输入数据数组,但是如果指定了下标而没有此数据,laravel就会报错
$res = $request->all();
//var_dump($res['prod_id']);没有prod_id,就会laravel报错
input
获取单个输入值,如果不带参数就是获取全部输入值
第二个参数,就是第一个参数不存在的时候,默认输出第二个参数
如果指定的下标不存在,就会返回null
$res = $request->input('pro_id');
$res = $request->input('pro_id','http://www.baidu.com');
header('Location:'.$res);
query
和input没有区别
通过动态属性获取
获取不存在的返回null,没有默认值
$res = $request->pro_id;
cookie
Lavarel 框架生成的全部 cookies 都是加密的,并且已经用授权码签名,这意味着如果它们被客户端改变就会失效
原生设置cookie
setcookie('name','laosong');
原生获取cookie
$res = $_COOKIE['name'];
Laravel设置cookie
return response('Hello World')->cookie('name', 'wangyulong', 10);
Laravel获取cookie
$res = $request->cookie('name');
session
设置session
session(['name'=>'liushanghai']);
获取session
可以设置第二个参数,如果没有第一个参数,输出第二个默认值
$res = session('name');
$res = session('addr','合肥');
清除session
清除值,键addr还在
session(['addr'=>null]);
删除单个session
$request->session()->forget('addr');
删除全部session
$request->session()->flush();
中间件
中间件提供了一种方便的机制过滤进入应用程序的 HTTP 请求。例如,Laravel 包含一个中间件,验证您的应用程序的用户身份验证。如果用户未被认证,中间件会将用户重定向到登录界面。然而,如果用户通过身份验证,中间件将进一步允许请求到应用程序中<br />在路由后面加入一个中间件auth,如果有auth并且没有登录,就会302跳转到login<br />跳转可以用js的 setTimeout
的 window.location.href = '/home/lists'
;
Route::get('/product-list','Product@lists');->middleware('auth');
Route::get('/home/lists','Home@lists');->name('login');