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的使用方法是一样的