Laravel请求/响应/Cookie/Session

Laravel请求/响应/Cookie/Session

  1. 本节主要为请求Request部分
  2. 主要为请求、响应、Cookie、Session
  3. 参考文献为 https://laravel.com/api/5.6/Illuminate/Http/Request.html

一、请求Request

  1. 通过依赖注入的方式来获取当前的HTTP请求的实例,应该在控制器方法中类型提示Illuminate\Http\Request。

  2. 传入的请求的实例将通过服务容器自动注入

  3. 使用的方式,Request的常用方法

    $request->ip();			// 获取访问者的ip地址
    $request->userAgent();	// 获取访问者代理
    $request->route();		// 获取路由请求的详情
    $request->header();		// 获取请求头信息
    $request->url();		// 获取请求地址 不包括查询字符串
    $request->fullUrl();	// 获取请求地址 包括查询字符串
    $request->path();		// 获取请求路径
    $request->method();		// 获取请求的方法
    $request->isMethod();	// 判断请求的方法
    
1.1. 获取request数据获取
  1. 路由带参数获取,可以在形参的地方添加要获取的$参数

    public function index(Request $request, $uid) { 
    	... 
    }
    
  2. 使用常用方法

    $request->get('name', 默认值);		// 获取get方式请求的数据
    $request->query('name', 默认值);		// 查询字符串,不添加任何参数,获取所有的
    $request->post('name', 默认值);		// 获取post发送的数据
    // 推荐使用input来获取参数,基本可以解决问题
    $request->input('name', 默认值);		// 获取get/post发送的数据;不带参数,获取所有
    $request->all();					// 获取所有的发送的数据
    $request->only(数组);			 	// 获取指定的name
    $request->except(数组);				// 不获取指定的name
    // 功能使用
    $request->merage(数组);				// 合并新的数据到请求数据中 
    $request->repalce(数组);			  	// 替换请求数据 
    $request->keys();					// 获取所有的name
    $request->has(name);				// 判断是否传过来值
    $request->file();					// 获取文件的信息	
    

二、相应Response

  1. 可以直接return字符串,如果返回的是数组的话,会默认返回Json的格式返回。

  2. 可以使用助手函数response($data, 状态码);,这样就不用直接使用use做引入了。

  3. 可以操作header

    // 其中可以修改header中的字段
    return response($data, 301)->header('Content-Type', 'application/json');
    
  4. 也可以相应cookie

  5. 相应json的方式,jsonp的相应,jsonp表示跨域的环境下进行请求

    // 普通的json的相应
    return response()->json('数组');
    return response()->json('数组')->withCallback($request->input('callback'));
    
  6. Response返回下载文件,还可以对文件重命名
    return response()->download('Postmain.exe');

2.1 重定向
  1. 重定向相应是Illuminate\Http\RedirectResopnse类的实例,助手函数redirect(),具体的使用方法为return redirect(路由);
  2. 重定向到外部的域名,return redirect()->away('http://www.baidu.com');
  3. 重定向并使用闪存的Session数据,return redirect('test')->with('name', 'liudehua');
  4. 模版访问,用session('name');
  5. 重定向到之前位置,return back()->with('name', 'liudehua');
  6. 跳转到上一级的目录,return back();

三、Cookie

  1. 引入cookie,不建议用cookie的助手函数,use Illuminate\Support\Facades\

    // 这个时候并没有设置cookie
    $cookie = Cookie::make($key, $value, $minutest);
    // 加入到队列
    Cookie::queue($cookie);
    
  2. 获取cookie, Cookie::get($key);

  3. 删除cookie,

    $user = Cookie::forget('username');
    Cookie::queue($user);
    
  4. 判断cookie是否存在,dd(Cookie::has('username'));

四、Session

  1. 配置文件在session.php,session可以存到文件里,也可以存到数据库里
  2. 引入session,use Illuminate\Support\Facades\Session;
  3. session 的储存,Session::put('name', 'liudehua');,里面也可以使用数组的形式。
  4. 获取session,Session::get('name');
  5. 删除session,Session::forget('name');
  6. 判断是否存在session,Session::has('key1');
  7. 清空所有的session,Session::flush();
  8. 助手函数不用引用,直接存储即可,推荐使用,session(['email' => '[email protected]']);,用助手函数只能用数组。
  9. 获取session中的内容,session('email');

猜你喜欢

转载自blog.csdn.net/Ankie_/article/details/87860547