当前位置:首页 > CMS教程 > Thinkphp > 列表

thinkphp5的get和post数据封装的方法介绍(代码)

发布:smiling 来源: PHP粉丝网  添加日期:2019-12-25 10:16:01 浏览: 评论:0 

本篇文章给大家带来的内容是关于thinkphp5的get和post数据封装的方法介绍(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

thinkphp5的get和post数据封装

一、view(html页面获取数据)

二、控制器

一、view(html页面获取数据)

  1. <form action="index"
  2.  
  3.     <input type="text" name="status" value="{$where.nireid}" placeholder="状态" > 
  4.  
  5.     <input type="text" name="atype" value="{$where.atype}" placeholder="类型" > 
  6.  
  7.     <input type="text" name="nireid" value="{$where.nireid}" placeholder="昵称" > 
  8.  
  9.     <button type="submit" > 搜索</button> 
  10.  
  11. </form> 

二、控制器

1、正常情况下我们是这样操作的

  1. public function index(){  
  2.  
  3.      $where['status'] =input('get.status'); 
  4.  
  5.      $where['atype'] =input('get.atype');  
  6.  
  7.      $where['nireid'] =input('get.nireid'); 
  8.  
  9.      $this->assign('where',$where); 
  10.  
  11.      $this->assign(UserExtractModel::systemPage($where)); 
  12.  
  13.      return $this->fetch(); 
  14.  

2、其实我们可以这样做

  1. public function index(){  
  2.  
  3.      $where = self::getMore([ 
  4.  
  5.           ['status',''], 
  6.  
  7.           ['atype',''], 
  8.  
  9.           ['nireid',''], 
  10.  
  11.      ],$this->request); 
  12.  
  13.      $this->assign('where',$where); 
  14.  
  15.      $this->assign(UserExtractModel::systemPage($where)); 
  16.  
  17.      return $this->fetch(); 
  18.  
  19.   
  20. public function getMore($params,Request $request=null,$suffix = false){ 
  21.  
  22.      if($request === null) $request = Request::instance(); 
  23.  
  24.      $p = []; 
  25.  
  26.      $i = 0; 
  27.  
  28.      foreach ($params as $param){ 
  29.  
  30.           if(!is_array($param)) { 
  31.  
  32.                $p[$suffix == true ? $i++ : $param] = $request->get($param); 
  33.  
  34.           }else
  35.  
  36.                if(!isset($param[1])) $param[1] = null; 
  37.  
  38.                if(!isset($param[2])) $param[2] = ''
  39.  
  40.                $name = is_array($param[1]) ? $param[0].'/a' : $param[0]; 
  41.  
  42.                $p[$suffix == true ? $i++ : (isset($param[3]) ? $param[3] : $param[0])] = $request->get($name,$param[1],$param[2]); 
  43.  
  44.           } 
  45.  
  46.      } 
  47.  
  48.      return $p
  49.  

(不要忘记use think\Request;)

(post同理)

以上就是thinkphp5的get和post数据封装的方法介绍(代码)的详细内容。

Tags: thinkphp5 post数据封装

分享到: