ThinkPHP5.0之控制器中常用操作

 

 

1、获取参数

  方法一:在thinkphp5的控制器方法中,如果需要获取view层传来的参数,可以使用助手函数input;

1  //获取post方法传过来的参数
2  $id = input('post.id');
3         
4  //获取get方法传过来的参数
5  $id = input('id');

【指点迷津】为什么获取get参数时不是--input('get.id')呢?其实在官方文档中获取get参数可以使用$id = input('get.id')来获取的,但是在实际使用的时候会报错,所以在获取get参数时就不加get,而是直接写参数明就行了;

 

方法二:可以参照tp3,将内部函数M、D、U、S、C、I、F拷贝到thinkphp框架根目录下的thinkphp助手函数库helper.php中

  1 if (!function_exists('M')) {
  2     /**
  3      * 采有TP5最新助手函数特性实现函数简写方式 M
  4      * @param string $name 表名     
  5      * @return DB对象
  6      */
  7     function M($name = '')
  8     {
  9         if(!empty($name))
 10         {          
 11             return Db::name($name);
 12         }                    
 13     }
 14 }
 15 
 16 if (!function_exists('D')) {
 17     /**
 18      * 采有TP5最新助手函数特性实现函数简写方式 D
 19      * @param string $name 表名     
 20      * @return DB对象
 21      */
 22     function D($name = '')
 23     {               
 24         $name = Loader::parseName($name, 1); // 转换驼峰式命名
 25         if(is_file(APP_PATH."/".MODULE_NAME."/model/$name.php")){
 26             $class = '\app\\'.MODULE_NAME.'\model\\'.$name;
 27         }elseif(is_file(APP_PATH."/home/model/$name.php")){
 28             $class = '\app\home\model\\'.$name;
 29         }elseif(is_file(APP_PATH."/mobile/model/$name.php")){
 30             $class = '\app\mobile\model\\'.$name;
 31         }elseif(is_file(APP_PATH."/api/model/$name.php")){            
 32             $class = '\app\api\model\\'.$name;     
 33         }elseif(is_file(APP_PATH."/admin/model/$name.php")){
 34             $class = '\app\admin\model\\'.$name;
 35         }elseif(is_file(APP_PATH."/seller/model/$name.php")){
 36             $class = '\app\seller\model\\'.$name;
 37         }
 38         if($class)
 39         {
 40             return new $class();
 41         }            
 42         elseif(!empty($name))
 43         {          
 44             return Db::name($name);
 45         }                    
 46     }
 47 }
 48 
 49 
 50 
 51 /**
 52  * 采有TP5最新助手函数特性实现函数简写方式 M
 53  * URL组装 支持不同URL模式
 54  * @param string $url URL表达式,格式:'[模块/控制器/操作#锚点@域名]?参数1=值1&参数2=值2...'
 55  * @param string|array $vars 传入的参数,支持数组和字符串
 56  * @param string|boolean $suffix 伪静态后缀,默认为true表示获取配置值
 57  * @param boolean $domain 是否显示域名
 58  * @return string
 59  */
 60 if (!function_exists('U')) {
 61     function  U($url='',$vars='',$suffix=true,$domain=false){
 62        return Url::build($url, $vars, $suffix, $domain);
 63     }
 64 }
 65 
 66 
 67 
 68 /**
 69  * 采有TP5最新助手函数特性实现函数简写方式 S 
 70  * @param mixed $name 缓存名称,如果为数组表示进行缓存设置
 71  * @param mixed $value 缓存值
 72  * @param mixed $options 缓存参数
 73  * @return mixed
 74  */
 75 if (!function_exists('S')) {
 76    function S($name,$value='',$options=null) {
 77        if(!empty($value))
 78             Cache::set($name,$value,$options);
 79        else
 80            return Cache::get($name);
 81    }
 82 }
 83 
 84 
 85 /**
 86  * 采有TP5最新助手函数特性实现函数简写方式 S 
 87  * 获取和设置配置参数 支持批量定义
 88  * @param string|array $name 配置变量
 89  * @param mixed $value 配置值
 90  * @param mixed $default 默认值
 91  * @return mixed
 92  */
 93 if (!function_exists('C')) {
 94     function C($name=null, $value=null,$default=null) {
 95         return config($name);
 96    }   
 97 }
 98 
 99 
100 /**
101  * 采有TP5最新助手函数特性实现函数简写方式 I
102  * 获取输入参数 支持过滤和默认值
103  * 使用方法:
104  * <code>
105  * I('id',0); 获取id参数 自动判断get或者post
106  * I('post.name','','htmlspecialchars'); 获取$_POST['name']
107  * I('get.'); 获取$_GET
108  * </code>
109  * @param string $name 变量的名称 支持指定类型
110  * @param mixed $default 不存在的时候默认值
111  * @param mixed $filter 参数过滤方法
112  * @param mixed $datas 要获取的额外数据源
113  * @return mixed
114  */
115 if (!function_exists('I')) {
116     function I($name,$default='',$filter='htmlspecialchars',$datas=null) {
117      
118         $value = input($name,'',$filter);        
119         if($value !== null && $value !== ''){
120             return $value;
121         }
122         if(strstr($name, '.'))  
123         {
124             $name = explode('.', $name);
125             $value = input(end($name),'',$filter);           
126             if($value !== null && $value !== '')
127                 return $value;            
128         }  
129         return $default;        
130     } 
131 }
132     
133 /**
134  * 采有TP5最新助手函数特性实现函数简写方式 F
135  * @param mixed $name 缓存名称,如果为数组表示进行缓存设置
136  * @param mixed $value 缓存值
137  * @param mixed $path 缓存参数
138  * @return mixed
139  */
140 if (!function_exists('F')) {
141     function F($name,$value='',$path='') {
142         if(!empty($value)){
143             Cache::set($name,$value); 
144         }else{
145             return Cache::get($name);
146         }
147     }
148 }

然后就可以在控制器中使用了,比如获取参数id

1     $id = I("get.id");

和助手函数input的使用方法是一样的

 

posted @ 2018-05-24 20:17  liwuming  阅读(2010)  评论(0编辑  收藏  举报