zoukankan      html  css  js  c++  java
  • 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 = 'apphomemodel\'.$name;
     29         }elseif(is_file(APP_PATH."/mobile/model/$name.php")){
     30             $class = 'appmobilemodel\'.$name;
     31         }elseif(is_file(APP_PATH."/api/model/$name.php")){            
     32             $class = 'appapimodel\'.$name;     
     33         }elseif(is_file(APP_PATH."/admin/model/$name.php")){
     34             $class = 'appadminmodel\'.$name;
     35         }elseif(is_file(APP_PATH."/seller/model/$name.php")){
     36             $class = 'appsellermodel\'.$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的使用方法是一样的

  • 相关阅读:
    Hack World和CTFHub布尔注入记录
    MySQL updatexml()、extractvalue() 报错型SQL注入
    常见的Web源码泄漏漏洞及其利用(转载记录)
    大白
    [强网杯 2019]随便注
    [极客大挑战 2019]LoveSQL 1
    Mysql--事物
    Android深度探索-卷1第十章心得体会
    Android深度探索-卷1第八章心得体会
    Android深度探索-卷1第九章心得体会
  • 原文地址:https://www.cnblogs.com/liwuming/p/9084907.html
Copyright © 2011-2022 走看看