laravel 笔记
  • Introduction
  • 说明
  • Laravel 基础
    • 安装与配置
    • 目录结构
    • 路由配置
    • MVC 配置
    • 数据库操作
      • DB façade 方式
      • 查询构造器方式
      • Eloquent ORM 方式
      • 数据库迁移
      • 数据填充
    • 请求和响应和重定向
    • Session
    • 中间件
    • 其他
      • Artisan 命令行
  • Laraval 源码分析
    • 请求到响应的生命周期
      • 程序启动准备
      • 请求实例化
      • 处理请求
      • 响应的发送与程序终止
    • 路由
    • 补充知识点
      • 反射机制
      • Closure 类
  • 资料
  • 核心思想
    • 服务容器
    • 服务提供者
    • Facades(门脸模式)
  • 开发笔记
  • Artisan 命令
  • yarn
Powered by GitBook
On this page
  • Laravel Session
  • 配置访问路由
  • 控制器

Was this helpful?

  1. Laravel 基础

Session

Previous请求和响应和重定向Next中间件

Last updated 5 years ago

Was this helpful?

参考:

Laravel Session

配置访问路由

routes/web.php文件中配置,Laravel 带有开箱即用的web和api中间件,包含了可能应用到 Web UI 和 API 路由的通用中间件:

Route::group(['middleware' => ['web']], function() {

    Route::any('session1', ['uses' => 'StudentController@session1']);
    Route::any('session2', [
        'as' => 'session2',
        'uses' => 'StudentController@session2'
    ]);
    Route::any('response', ['uses' => 'StudentController@response1']);
});

控制器

文件示例App\Http\Controllers\StudentController

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Session;

class StudentController extends Controller
{

    public function session1(Request $request)
    {
        // 1. HTTP request session();
//        $request->session()->put('key1', 'value1');
//        echo $request->session()->get('key1');

        // 2. session()
//        session()->put('key2', 'value2');
//        echo session()->get('key2');

        // 3. Session
        // 存储数据到Session
//        Session::put('key3', 'value3');

        // 获取Session的值
//        echo Session::get('key3');
        // 不存在则取默认值
//        echo Session::get('key4', 'default');

        // 已数组的形式存储数据
//        Session::put(['key4' => 'value4']);

        // 把数据放到Sesion的数组中
//        Session::push('student', 'sean');
//        Session::push('student', 'imooc');
//        $res = Session::get('student', 'default');
//        var_dump($res);

        // 取出数据并删除
//        $res = Session::pull('student', 'default');
//        var_dump($res);

        // 取出所有的值
//        $res = Session::all();
//        dd($res);


        // 判断session中某个key是否存在
//        if (Session::has('key11')) {
//            $res = Session::all();
//            dd($res);
//        } else {
//            echo '你们老大不在';
//        }

        // 暂存数据
        Session::flash('key-flash', 'val-flash');


    }

    public function session2(Request $request)
    {

        return Session::get('message', '暂无信息');

//        return 'session2';
        //echo Session::get('key-flash');

        // 获取session所有的数据
//        $res = Session::all();
//        dd($res);

        // 删除session中指定的key的值
//        Session::forget('key3');

        // 清空所有sesion信息
//        Session::flush();

//        $res = Session::all();
//        dd($res);

    }

       public function response1()
    {

        // 4. 重定向
//         return redirect('session2');
//        return redirect('session2')->with('message', '我是快闪数据');

        //action()
//        return redirect()->action('StudentController@session2')
//            ->with('message', '我是快闪数据');

        // route()
//        return redirect()->route('session2')
//            ->with('message', '我是快闪数据');
        return redirect()->back();
    }
}
Laravel 的 HTTP 会话机制