一、獲取參數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的使用方法是同樣的緩存