关于thinkphp,前端向后端传递参数的那些事

作为一个初学者,目前逻辑判断没问题,数据库查询语言没问题,但总是困扰在前端向后端传递数组的地方。

3种解决方案:

 

1、前端传递数组时,直接加 .toString() ,转成字符串。

例如 : [9,10] ,toString() ,变成:“9,10”

后端接收,按字符串接收,再用explode(',',$post['参数']) ,变成数组 , array()。

 

2、前端直接传递数组,后端直接接收数组。但后端接收数组时,需要采用写法:(‘array_param’,[],'')

 UtilService::postMore([
                  ['daka_time', []], //指定此参数是数组类型
                    ['users', []],//指定此参数是数组类型
                    'mainid',
                    'dutyid',
        ]);

 

3 、前端传递数组,后端接收数组,采用如下写法:

input('param.isSelected/a'); // 此写法为官方写法。应该是正确的。还没测试过。

 $plan_done_time = input('plan_done_time/a'); //先记下来,这是程序中正确写法。

如果是传递其他参数,则同样类似。

 

附 : 区分一下input的3种写法:

$structure_id = input('structure_id', 0, 'intval');
$notice_level = input('notice_level', 0, 'trim');
$name = input('name', '', 'trim');

第一个参数是:前端参数名称

中间是,如果没有接收到此参数给的默认值

第三个参数是:

'intval':变量转成整数类型;

'trim': 去除字符串首尾空白等特殊符号或指定的字符

$suffix : 只有true 和 false ,

     false:不做任何判断,

     true:变成:$post[0] = param ; 按照翻译,是加后缀的意思。目前还没遇到,以后遇到了,再说。

 

posted @ 2021-01-17 16:01  墨晓溪2288  阅读(1016)  评论(0)    收藏  举报