tp框架获取前端传过来的json数据或者数组数据,接收不到返回为null

在使用tp框架获取参数我们一般使用

$request=new Request();
$all = $request->param();

不管是get post 或者 param request 都获取不到 那是因为没有加修饰符

可以使用tp自带的助手函数 input()来解决这个问题 

input函数支持对变量使用修饰符功能,可以更好的过滤变量。

用法如下:

input('变量类型.变量名/修饰符');

或者

Request::instance()->变量类型('变量名/修饰符');

例如:

input('get.id/d');
input('post.name/s');
input('post.ids/a');
Request::instance()->get('id/d');

ThinkPHP5.0版本默认的变量修饰符是/s,如果需要传入字符串之外的变量可以使用下面的修饰符,包括:

修饰符作用
s强制转换为字符串类型
d强制转换为整型类型
b强制转换为布尔类型
a强制转换为数组类型
f强制转换为浮点类型

如果你要获取的数据为数组,请一定注意要加上 /a 修饰符才能正确获取到。 

主要就是上面这一句 要加/a修饰符 

 

tp6报错"variable type error: array"的原因可能是因为在tp6中,无法直接返回数组类型的数据tp6框架不支持直接将数组作为返回返回前端。这可能是因为tp6框架返回值类型有一定的要求,需要返回一种特定的数据类型。 解决这个问题的方法可以有两种: 1. 将返回数组数据进行序列化,然后再返回前端。可以使用json_encode()函数将数组转换为json格式的字符串,然后再返回前端。这样前端就可以正常接收数据。这是一种推荐的方法。 2. 可以修改tp6框架中的配置文件config.php,将default_return_type修改为json。这样所有的接口都将以json格式返回数据。但是这种方法可能会影响到其他的接口,所以不太推荐使用。 另外,如果报错是因为上传的数据中含有数组数据,可以通过以下两种方法解决: 1. 将数据进行JSON序列化,然后在后端进行反序列化。这样可以保留数组的结构并正常处理数据。 2. 使用Request::instance()->post('参数/a')来获取数据。其中/a告诉解析器我们要获取一个数组。 综上所述,tp6报错"variable type error: array"的解决方法是将返回数组数据进行序列化,或者修改tp6的配置文件,或者处理上传的含有数组数据数据。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [ThinkPHP5 报错variable type error: array (PHP报错)](https://blog.csdn.net/qq_17627195/article/details/127976632)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值