1.Controller之Request
Laravel中的请求使用的是symfony/http-foundation组件,请求里面放了$_GET,$_POST,$_COOKIE,$_FILES,$_SERVER等数据。
在student控制器里新增一个方法test6。
代码语言:javascript复制public function test6(Request $request){
echo $request->input("name"); //取值
//echo $request->input("name1","未知"); //当获取一个不存在的值时,可以设置默认的值
//if($request->has("name")) echo 1; //判断是否有这个值
// dd($request->all()); //取得url里所有的值
//判断请求的类型
//echo $request->method(); //返回当前请求的类型
//if($request->isMethod("get")) echo 1; //判断是不是get请求
//if(!$request->ajax()) echo 1; //判断是不是ajax请求
//$res=$request->is("student/*") ;var_dump($res); //判断路由是否符合某个格式
//echo $request->url(); //当前的url
}
并且导入命名空间:use IlluminateHttpRequest;
然后在URL访问laravel/public/test6?name=zls,发现输出zls
2.Controller之Session
由于http协议是无状态的,所以session提供一种保存用户数据的方法。Laravel支持多种session后端驱动,并提供了统一的清楚的api。也内置了memcached、redis、数据库的后端驱动。默认使用了file的文件后端驱动。Session的配置文件在config/session.php中。
Laravel中使用session有三种方式:
HTTP中Request类的session()方法、session()辅助函数、session facade。
新增一个test7方法,
代码语言:javascript复制public function test7(Request $request){
/*Session*/
//1.HTTP Request session() 需要导入命名空间 use IlluminateHttpRequest;
//session_start();
//$request->session()->put("name","zls"); //设置
// echo $request->session()->get("name"); //获取
//2.session()辅助函数
//session_start();
//session()->put('name','zls'); //设置
//echo session()->get('name'); //获取
//3.Session 类
需要导入命名空间 use IlluminateSupportFacadesSession;
//Session::put("name","zls");
//echo Session::get("name");
//echo Session::get("name1",'efd'); //不存在时设置默认值
//Session::put(["name"=>"zls"]); //以数组的形式存储数据
//多个数据放到一个数组里,使用push方法
// session_start();
//Session::push('student','sean');
//Session::push('student','zls');
//var_dump(Session::get('student')); //获取这个数组并打印
//取出数据并且删除
//session_start();
//Session::put("name","zls");
//echo Session::pull('name'); //取出数据并且删除
//取出session中所有的值
//session_start();
//Session::push('student','sean');
//Session::put("name","zls");
//Session::put("agee","16");
//var_dump(Session::all()); //取出session中所有的值
//判断session存不存在
//if(Session::has('name') var_dump(Session::all());
//删除某个key
//Session::forget('name');
//删除所有session
//Session::flush();
//闪存,第一次可以获取,第二次就没了
//Session::flush('name','zls');
//echo Session::get('name');
配置好路由:
Route::group(['middleware'=>['web']],function(){ //通过中间件的方式开启session_start(),php版本要大于5.6
Route::get('test7',['uses'=>'StudentController@test7']);
})
php版本小于5.6开启session_start()直接在控制器里写。
3.Controller之Response
响应的几种类型:字符串、视图、json、重定向
//1.json
$data=['name'=>'zls',"age"=>18,"sex"=>"man"];
echo json_encode($data);
//2.重定向
控制器里写:
return redirect("test7"); //跳转到test7
return redirect("test7")->with("message","我是快闪数据"); //跳转到test7控制器,并且携带数据
test7控制器里用Session::get("message")来接收数据
return redirect()->action("HomeController@index"); //跳转到其它控制器
return redirect()->route("test"); //通过路由别名来跳转到任意位置,先要配置好路由
return redirect()->back() 返回上一级目录