4.laravel基础(四)Controller

Request

  • laravel中的请求使用的是symfony/http-foundation组件
    public function request1(Request $request)   {       
    //取值       
      echo $request->input('name');              
      echo $request->input('name1', '未知');       
      if($request->has('name')){           
        echo $request->input('name');       
      }else{           
        echo '无该参数';       
      }       
      $request->all(); //获取所有参数       
    //判断请求类型       
      echo $request->method(); //get post       
      if($request->isMethod('POST')){           
        echo 'Yes';       
      }else{           
        echo 'No'       
      }       
    $bool = $request->ajax(); //判断是否是ajax过来的数据       
    $request->is('student/*'); //判断请求的url是否包含student       
    //获取当前的url       
    $request->url();   
    }

    Session

  • http是无状态的,session是一种保存用户数据的方法
  • laravel支出多种session后端驱动,memcached,radis,和数据库的后端驱动,默认使用‘file’的session驱动
  • session的配置文件在config/session.php中
  • 使用session的三种方式
    • HTTP request的session()方法
          $request->session()->put('key1', 'value1');
          $request->session()->get('key1');
    • session()辅助函数
        session()->put('key2','value2');
        session()->get('key2');
    • Session facade
        Session::put('key3', 'value3');
        Session::get('key3');
        Session::get('key4', 'default'); //如果没有取默认值
        Session::put(['key4' => 'default']); //以数组形式
        Session::push('student', 'sean'); //以数组形式存储
        Session::push('student','imooc'); // 以数组形式存储
        Session::pull(‘student','default'); //使用一次,然后清空
        Session::all(); // 取出所有值
        if(Session:has('key1')){
            $res = Session::all();
        } else {
            echo 'no session';
        }
        // 删掉session
        Session::forget('key1');
        // 删除所有
        Session::flush();
       // 暂存,第一次存在,再访问,不存在
        Session::flash('flash-key', 'flash-value');

      Response

    • 字符串
    • 视图
    • Json
      $data = [
        'errCode' => 0,
        'errMsg' => 'success',
        'data' => 'sean'
      ];
      return response()->json($data); //返回json
  • 重定向
      redirect('url2');
      redirect('url2')->with('message','我是快闪数据'); // 第一次显示这个信息,再刷新就没了
      redirect()->action('StudentController@session2')-with('message', '我是快闪数据');
      redirect()->route()-with('message', '我是快闪数据);
      redirect()->back(); //返回上一个页面

    Middleware

  • 中间件作用
posted @ 2017-03-13 23:22  涵叔  阅读(141)  评论(0)    收藏  举报