laravel基础课程---7、文件处理、闪存、cookie(cookie原理和使用场景)

laravel基础课程---7、文件处理、闪存、cookie(cookie原理和使用场景)

一、总结

一句话总结:

页面请求服务器的时候是把这个页面中所有的cookie都带上了的cookie里面也存了session的信息,服务器根据这个session可以判断用户
登录:[如果未勾选自动登录 默认采用session(服务器判断session)(session关闭浏览器就失效)],[如果勾选自动登录 默认采用cookie]
浏览纪录:会在cookie中存一份

1、laravel中的闪存是什么?

作用:【表单验证错误】:Laravel 允许你将本次的输入数据保留到下一次请求发送前。这个特性在表单验证错误后重新填写表单相当有用。
原理:【存入session】:IlluminateHttpRequest 的 flash 方法会将当前输入的数据存进 session 中,因此下次用户发送请求到应用程序时就可以使用它们

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图片上传操作?

使用 IlluminateHttpRequest 实例中的 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进行加密

二、内容在总结中

 
原文地址:https://www.cnblogs.com/Renyi-Fan/p/10841897.html