Php 未执行筛选器
我正在使用apigility 1.0.4和zend framework 2.3.3编写一个PHP5.6应用程序 借助apigility,我创建了一个名为“饮料”的新重置服务 并创建了一个名为“饮料风味”的文件 我使用了以下过滤器:Php 未执行筛选器,php,laminas-api-tools,Php,Laminas Api Tools,我正在使用apigility 1.0.4和zend framework 2.3.3编写一个PHP5.6应用程序 借助apigility,我创建了一个名为“饮料”的新重置服务 并创建了一个名为“饮料风味”的文件 我使用了以下过滤器: Zend\Filter\StringToLower Zend\Filter\StringTrim 现在我用邮递员来测试它 因此,我将url配置为http://url/drink 我正在发送带有原始json的post数据,其中包含以下文本: {"drink_flavo
Zend\Filter\StringToLower
Zend\Filter\StringTrim
现在我用邮递员来测试它
因此,我将url配置为http://url/drink
我正在发送带有原始json的post数据,其中包含以下文本:
{"drink_flavor" : " AAA"}
正如你所看到的,我在开头有一个空格,字母是大写的
现在,如果我的控制器代码为:
public function create($data)
{
die(var_export($data,1));
}
所以我只是在打印数据
如果我对每件事都理解正确,而不是得到“AAA”,我应该得到“AAA”
由于我的过滤器,但我仍然得到未修改的数据,这是“AAA”
你知道缺少什么吗?你必须从你的
InputFilter
中提取数据才能得到过滤后的数据
所以在你的听众里面:
// Get filtered data
$inputFilter = $this->getInputFilter();
$data = $inputFilter->getValues();
并继续使用该$data
数组
create方法中的$data
参数是原始/未过滤的POST
数据。
使用$data
作为方法的源代码时应该小心,因为客户端发送的任何内容都将在其中
我认为这在Apigility文档中没有解释清楚,我认为很多用户都犯了这个错误。我在一本书中写过这件事