laravel基础课程---7、文件处理、闪存、cookie(cookie原理和使用场景)
一、总结
一句话总结:
页面请求服务器的时候是把这个页面中所有的cookie都带上了的,cookie里面也存了session的信息,服务器根据这个session可以判断用户
登录:[如果未勾选自动登录 默认采用session(服务器判断session)(session关闭浏览器就失效)],[如果勾选自动登录 默认采用cookie]
浏览纪录:会在cookie中存一份
1、laravel中的闪存是什么?
作用:【表单验证错误】:Laravel 允许你将本次的输入数据保留到下一次请求发送前。这个特性在表单验证错误后重新填写表单相当有用。
原理:【存入session】:Illuminate\Http\Request
的 flash
方法会将当前输入的数据存进 中,因此下次用户发送请求到应用程序时就可以使用它们
2、闪存语法及实例?
把表单提交所有数据写入闪存:$request->flash(); 在页面中的对应的input标签的value属性中写value={ {old('input的name名称')}}
把谁写入闪存:$request->flushOnly();
除了谁写入闪存:$request->flushExcept();
把当前所有的数据都写入闪存:return back()->with('errors','用户名长度不满足')->withInput(); 这里的withinput()就是flash()的作用
3、回退到上一个页面?
return back()
4、laravel支持链式操作?
return back()->with('errors','用户名长度不满足')->withInput();
5、return back()->with('errors','用户名长度不满足')->withInput();是什么意思?
back():回退到上一个页面
with():向页面发送数据,可以在页面中用<?php dump($errors);?>来接收
把当前所有的数据都写入闪存:return back()->with('errors','用户名长度不满足')->withInput();
6、laravel图片上传操作?
使用 Illuminate\Http\Request 实例中的 file 方法获取上传的文件:$file = $request->file('photo');
form表单加上文件传输选项:enctype="multipart/form-data"
7、文件上传实例?
判断是否有文件:hasFile():if ($request->hasFile('img'))
文件名:time()+rand():$newFile=time().rand().".".$ext;
上传文件操作:move():$request->file('img')->move('./Uploads',$newFile);
// 获取上传文件 $img=$request->file('img'); $img2=$request->img;// 判断文件是否上传 var_dump($request->hasFile('img'));// 实例if ($request->hasFile('img')) { // 获取后缀名 $ext=$request->file('img')->getClientOriginalExtension(); // 新的文件名 $newFile=time().rand().".".$ext; // 上传文件操作 $request->file('img')->move('./Uploads',$newFile);}else{ // 回到上一个页面 return back();}[实际开发中 使用无刷新上传文件]
8、session和cookie如何使用(比如判断用户登录)?
看cookie中是否有用户信息,如果有,就将cookie信息存进session,然后登录,否则就让用户重新登录
登录:其实还是先从cookie判断起:[如果未勾选自动登录 默认采用session(服务器判断session)(session关闭浏览器就失效)],[如果勾选自动登录 采用cookie]
9、laravel中如何查看和设置cookie?
查看所有cookie:$request对象的cookie()方法:dd($request->cookie());
查看指定cookie:echo $request->cookie('laravel_session'); 或 echo \Cookie::get('laravel_session');
设置cookie:\Cookie::queue('shauige','非浩哥莫属',10);
设置cookie的实质:也就是将cookie信息写进浏览器缓存
1、COOKIE的使用场景 登录 [如果未勾选自动登录 默认采用session] [如果勾选自动登录 默认采用cookie] 浏览纪录 [使用cookie和session 实现企业邮箱登录效果]2、注意: laravel 框架把所有的COOKIE进行加密 $_COOKIE['name'] =/= $request->cookie('name');3、查看cookie // 查看所有cookie // dd($request->cookie()); // 查看cookie echo $request->cookie('laravel_session'); echo \Cookie::get('laravel_session');4、设置cookie // 设置COOKIE \Cookie::queue('shauige','非浩哥莫属',10); $cookie = cookie('name', 'value', 10); return response('Hello World')->cookie($cookie);
10、laravel中$_COOKIE['name'] =/= $request->cookie('name'); 的原因是什么?
laravel 框架把所有的COOKIE进行加密
二、内容在总结中