作为一个初学者,目前逻辑判断没问题,数据库查询语言没问题,但总是困扰在前端向后端传递数组的地方。
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 ; 按照翻译,是加后缀的意思。目前还没遇到,以后遇到了,再说。