Controller——Request请求 Session缓存 response响应 middleware中间件

在这里插入图片描述

Controller

request

请求(使用的是symfony\http-foundation组件)
$_GET
$_POST
$_COOKIE
$_FILES
$_SERVER

			获取请求中的值
        echo $request->input('name');
        echo $request->input('sex','weizhi');
        if ($request->has('name')){
            echo $request->input('name');
        }else{
            echo '无';
        }

        echo '<pre>';
        $req=$request->all();
//        dd($req);
//			判断请求类型
        echo $request->method();
       if ($request->isMethod('GET')){
            echo 'true';
        }else{
           echo 'false';
       }
       $req= $request->ajax();
        dd($req);

        //判断是否是该路径
        $req=$request->is('student/*');
        var_dump($req);

        echo $request->url();

Session

Session是提供一种保存用户数据的方法
内置支持Memcached、Redis和数据库的后端驱动。默认使用“file”的Session驱动
配置文件在config/session.php中
HTTP request类的session()方法

session()辅助函数
        //存储数据到session
//        session()辅助函数
       $request->session()->put('name','lcy');
        //获取session的值
        echo $request->session()->get('name');

        session()->put('name','lcy1');
        echo session()->get('name');

Session facade

//          Session facade
        Session::put('name','lcy2');
        //不存在则取默认值
        echo Session::get('name2','default');

        //以数组的形式存储数据
        Session::put(['name2'=>'lcy3']);
		echo Session::get('name2','default');

        //把数据放到session的数组中
        Session::push('student','sean');
        Session::push('student','lcy4');
        $res=Session::get('student','default');
//        dd($res);
        //取出数据并删除(删除数组)
        $res=Session::pull('student','default');
        var_dump($res);
//        取出所有的值
        $res=Session::all();
//        dd($res);

        //判断session的某个key是否存在
       if(Session::has('name3')){
            $res=Session::all();
//            dd($res);
        }else{
            echo '啦啦啦啦';
        }
        //暂时存在
        Session::flash('key-flash','val-flash');
        //删除session中键值对
        Session::forget('name');

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

        $res=Session::all();
//        dd($res);
        echo Session::get('key-flash');

Respense

字符串
视图
Json

//3.响应Json
$data=[
    'errCode'=>0,
    'errMsg'=>'success',
    'data'=>'sean',
    'name'=>'lcy',
];
return response()->json($data);

重定向

return redirect('session2');
        //4.重定向 跳到session2之后不再变回response
//        return redirect('session2')->with('message','lcy');

//        return redirect()->action('StudentController@session2')
//            ->with('message','lcy');

//        return redirect()->route('session2')
//            ->with('message','lcy');


        //返回上一个页面
        return redirect()->back();

Middleware

Middleware中间件提供一个方便的机制来过滤进入应用程序的HTTP请求
场景
有一个活动,在指定日期后开始,如果活动没开始,只能访问宣传页面
新建中心件
新建文件
使用中心件

//活动宣传页面
Route::any('activity0',['uses'=>'StudentController@activity0']);
Route::group(['middleware'=>['activity']],function (){
    Route::any('activity1',['uses'=>'StudentController@activity1']);
    Route::any('activity2',['uses'=>'StudentController@activity2']);
});
//Route::any('activity3',['uses'=>'StudentController@activity3']);
中心件的前置和后置操作
<?php

namespace App\Http\Middleware;

use Closure;

class Activity{
//    //前置操作
// public function handle($request,Closure $next)
// {
//     if (time() < strtotime('2020-11-30')) {
//
//         return redirect('activity0');
//     }
//     return $next($request);
// }

//后置操作
    public function handle($request,Closure $next){
        $response=$next($request);
//        if (time() < strtotime('2020-11-30')) {
//         return redirect('activity3');
//     }
//       echo $response;
        return $response;
    }

}
注册中心件
protected $routeMiddleware = [
'activity' => \App\Http\Middleware\Activity::class,
];

报错:
Warning: include(E:\phpworkspace\larabbs): failed to open stream: Permission denied in E:\phpworkspace\larabbs\vendor\composer\ClassLoader.php on line 444
//报错解决:

E:\phpworkspace>composer install

Composer could not find a composer.json file in E:\phpworkspace
To initialize a project, please create a composer.json file as described in the https://getcomposer.org/ “Getting Started” section

E:\phpworkspace>cd larabbs
E:\phpworkspace\larabbs>composer install

Installing dependencies from lock file (including require-dev)
Verifying lock file contents can be installed on current platform.
Nothing to install, update or remove
Package jakub-onderka/php-console-color is abandoned, you should avoid using it. Use php-parallel-lint/php-console-color instead.
Package jakub-onderka/php-console-highlighter is abandoned, you should avoid using it. Use php-parallel-lint/php-console-highlighter instead.
Package mtdowling/cron-expression is abandoned, you should avoid using it. Use dragonmantank/cron-expression instead.
Package fzaninotto/faker is abandoned, you should avoid using it. No replacement was suggested.
Package phpunit/php-token-stream is abandoned, you should avoid using it. No replacement was suggested.
Package phpunit/phpunit-mock-objects is abandoned, you should avoid using it. No replacement was suggested.
Generating optimized autoload files
Carbon 1 is deprecated, see how to migrate to Carbon 2.
https://carbon.nesbot.com/docs/#api-carbon-2
You can run “.\vendor\bin\upgrade-carbon” to get help in updating carbon and other frameworks and libraries that depend on it.

Illuminate\Foundation\ComposerScripts::postAutoloadDump
@php artisan package:discover
Discovered Package: fideloper/proxy
Discovered Package: laravel/tinker
Discovered Package: nesbot/carbon
Package manifest generated successfully.
32 packages you are using are looking for funding.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值