zoukankan      html  css  js  c++  java
  • laravel基础课程---6、请求(如何获取当前 HTTP 请求的实例)

    laravel基础课程---6、请求(如何获取当前 HTTP 请求的实例)

    一、总结

    一句话总结:

    依赖注入:通过依赖注入的方式来获取当前 HTTP 请求的实例:public function store(Request $request)

    要通过依赖注入的方式来获取当前 HTTP 请求的实例,你应该在控制器方法中使用 IlluminateHttpRequest 类型提示。当前的请求实例将通过 服务容器 自动注入:

    <?php
    
    namespace AppHttpControllers;
    
    use IlluminateHttpRequest;
    
    class UserController extends Controller
    {
        /**
         * 储存一个新用户。
         *
         * @param  Request  $request
         * @return Response
         */
        public function store(Request $request)
        {
            $name = $request->input('name');
    
            //
        }
    }

    1、如果控制器方法也有输入数据是从路由参数中传入,如何获取当前 HTTP 请求的实例?

    只需将路由参数置于其他依赖之后(比如这里的$id):public function update(Request $request, $id)

    |||-begin

    Route::put('user/{id}', 'UserController@update');

    |||-end

    <?php
    
    namespace AppHttpControllers;
    
    use IlluminateHttpRequest;
    
    class UserController extends Controller
    {
        /**
         * 更新指定的用户。
         *
         * @param  Request  $request
         * @param  string  $id
         * @return Response
         */
        public function update(Request $request, $id)
        {
            //
        }
    }

    2、请求中获取地址的常用方法及注意?

    输出当前url地址(包含查询字符串):echo $request->fullUrl();
    获取URL的路由:echo $request->path();
    获取URl地址(返回不带有查询字符串的 URL):echo $request->url();
    判断路由是否是request:var_dump($request->is('abc'));
    // 输出当前url地址
    
        echo $request->fullUrl();
        http://www.yzmedu2.com/request?name=100
    
    // 获取URL的路由
    
        echo $request->path();
        request
    
    // 获取URl地址初参数
    
    
        echo $request->url();
        http://www.yzmedu2.com/request
    // 判断路由是否是request
        返回值 true|false
    
        var_dump($request->is('abc'));

    3、判断是get请求还是post请求实例(比如一个方法即可接受get请求又可接收post请求)?

    if ($request->isMethod('GET'))
    public function add(Request $request){
    
        // 判断当前是get请求
    
        if ($request->isMethod('GET')) {
            // 加载添加页面
            return view('add');
        }else{
            // 数据库的入库操作
            echo "插入数据库";
        }
        
    }

    4、如何获取和判断当前的请求类型?

    获取请求类型:echo $request->method();
    判断当前的请求是不是get请求:var_dump($request->isMethod('GET'));
    // 判断当前的请求类型
    
        echo $request->method();
    
    // 判断当前的请求是不是get请求
        返回值 true|false
    
        var_dump($request->isMethod('GET'));

    5、获取所有的请求数据,比如get、post、put等等?

    $_GET和$_POST中无法获取put类型的数据
    all方法:$data=$request->all();

    6、获取特定字段的请求数据,比如请求数据中的name字段?

    input方法:echo $request->input('name');

    7、请求中判断字段是否存在?

    has方法:var_dump($request->has('username'));

    8、请求中获取字段数据一些需要注意的?

    设置默认值:input+键值对:echo $request->input('yao','强哥');
    获取部分数据:only:$data1=$request->only(['name','pass']);
    除了一些数据以外:except:$data1=$request->except(['_token','name']);
    // 设置默认值
    echo $request->input('yao','强哥');
    
    // 获取部分数据
    
    $data1=$request->only('name','pass');
    $data1=$request->only(['name','pass']);
    
    // 除了一些数据以外
    
    $data1=$request->except('_token','name');
    $data1=$request->except(['_token','name']);

    二、内容在总结中

     
  • 相关阅读:
    openCV使用
    Object-C知识点 (二) 控件的实用属性
    Linux 配置JDK + MyEclipse
    虚拟机+linux+大杂烩
    THREE.js代码备份——webgl
    THREE.js代码备份——webgl
    THREE.js代码备份——canvas_ascii_effect(以AscII码显示图形)
    THREE.js代码备份——canvas
    THREE.js代码备份——canvas_lines(随机点、画线)
    THREE.js代码备份——线框cube、按键、鼠标控制
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/10834800.html
Copyright © 2011-2022 走看看