zoukankan      html  css  js  c++  java
  • 5

    获取请求/响应对象

    • 请求对象 Request Object
      使用 依赖注入 的方式来获取请求对象 $request
    use IlluminateHttpRequest;
    Route::get('/request', function (Request $request) {
        // $request只是个形参, 不一定非要使用 $request
        dd($request);  // dd是一个助手函数
    });
    
    • 响应对象 Response Object
      使用助手函数来获取响应对象
    use IlluminateHttpRequest;
    Route::get('/response', function () {
        // $request只是个形参, 不一定非要使用 $request
        $response = response();
        dd($response);
    });
    

    Request 对象获取请求信息

    • method() 获取请求的方法,返回请求类型字符串
    • isMethod('post') 判断请求方法, 返回布尔值
    • path() 获取路径信息, 返回路径信息字符串
    • url() 获取完整的请求url, 返回url字符串
    • port() 获取请求的端口, 返回端口号 integer
    • cookie('key') 获取cookie信息
    • ip() 获取请求的ip, 返回ip字符串
    use IlluminateHttpRequest;
    public function getRequestPath(Request $request) {
        // http://www.study.io/user/edit/3:80
    
        $request->method(); // GET
        $request->isMethod('post'); // false
        $request->path(); // user/edit/3
        $request->url();  // http://www.study.io/user/edit/3:80
        $request->port(); // 80
        $request->cookie('name');
        $request->ip();
    }
    

    Request 对象获取上传文件信息

    • has('file') 判断是否有某个文件,返回布尔值
    • file('file') 获取上传的文件, 返回一个包含文件信息的对象
    • isValid() 判断文件是否上传成功, 返回布尔值
    • path() 获取上传文件的路径, 返回绝对路径字符串
    • extension() 获取上传文件的后缀
    • move() 移动文件
    use IlluminateHttpRequest;
    public function getFiles(Request $request) {
        if ( $request->has('file') ) {
            $fileObject = $request->file('file');
            $bool = $fileObject->isValid();
            $path = $fileObject->path();
            $ext  = $fileObject->extension();
            $fileObject->move('upload/path', 'fileName'); // bool
        }
    }
    

    基本响应

    • return 字符串 / 数组
    • response('message', httpStatusCode) Response 对象
    • header('key','value') 返回信息并设置响应头
    • withHeaders(['key'=>'value']) 设置多个响应头信息
    • cookie('key', 'value') 添加cookie信息到响应

    如果是字符串或者数组,可以使用 return 语句来响应

    Route::get('/response', function () {
        // return 'strin';
        // return [ 'name' => 'alex', 'age'  => 18 ];
        // return response('message', 200);
        // return response()->json(['name' => 'alex', 'age' => 18]);
        // return response('<h1>hello world</h1>', 200)->header('content-type', 'text/html');
        /*
        return response('<h1>你好, 世界!</h1>', 200)->withHeaders([
            'content-type' => 'text/html;charset=UTF-8',
            'test-content' => 'hello world',
        ]);
        */
        // return response('response success', 200)->cookie('name', 'user1', 10);
        return redirect('/');
    });
    

    重定向响应

    • redirect() 重定向到指定的路由
    • route() 重定向到指定名称的路由
    • action() 重定向到控制器
    • away() 重定向到外部域名
    • with() 重定向并且带session数据
    Route::get('/redirect', function () {
        // return redirect('/admin/user/create');
        // return redirect()->route('login');   
        // return redirect()->action('adminUserControllercreate');
        // return response()->away('http://wwww.baidu.com');
        // return view('admin.user.create'); // 或者 return response()->view('admin.user.create');
        return response()->with('key', 'value')->with(['k'=>'v', 'k2'=>'v2']);
    });
    

    其他响应

    • view() 视图响应
    • json() json 响应
    • jsonp() JSONP 响应
    • download() 文件下载响应
    • file() 文件响应
    Route::get('/response/other', function () {
        // return response()->json(['name' => 'tom', 'age' => 18]);
        // return response()->jsonp($request->input('callback'), ['name' => 'tom', 'age' => 18]);
        // return view('admin.user.create');  // 或者 return response()->view('admin.user.create');
        // return response()->download($filePath);
        // return response()->file($filePath, $headers)
        // 
    });
    
  • 相关阅读:
    MongoDB 释放磁盘空间 db.runCommand({repairDatabase: 1 })
    RK 调试笔记
    RK Android7.1 拨号
    RK Android7.1 移植gt9271 TP偏移
    RK Android7.1 定制化 itvbox 盒子Launcher
    RK Android7.1 双屏显示旋转方向
    RK Android7.1 设置 内存条作假
    RK Android7.1 设置 蓝牙 已断开连接
    RK Android7.1 进入Camera2 亮度会增加
    RK 3128 调触摸屏 TP GT9XX
  • 原文地址:https://www.cnblogs.com/liaohui5/p/10581615.html
Copyright © 2011-2022 走看看