ThinkPHP5.0之控制器中經常使用操做

 

 

一、獲取參數php

  方法一:在thinkphp5的控制器方法中,若是須要獲取view層傳來的參數,能夠使用助手函數input;html

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,而是直接寫參數明就好了;thinkphp

 

方法二:能夠參照tp3,將內部函數M、D、U、S、C、I、F拷貝到thinkphp框架根目錄下的thinkphp助手函數庫helper.php中api

  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的使用方法是同樣的緩存

相關文章
相關標籤/搜索