如何将过滤器应用于具有数组内容的字段元素?
例如:
$this->add(
"name" => "tags",
"type" => "text",
"filter" => array(
array("name" => "StripTags"),
array("name" => "StringTrim")
)
);
$tags[0] = "PHP";
$tags[1] = "CSS";
Run Code Online (Sandbox Code Playgroud)
如果我尝试过滤我收到一个错误,说标量对象被排除,给出数组.
目前这不太可能.您最好的选择是使用回调过滤器并单独过滤每个项目.像这样的东西
$this->add(
"name" => "tags",
"type" => "text",
"filter" => array(
array("name" => "Callback", "options" => array(
"callback" => function($tags) {
$strip = new \Zend\Filter\StripTags();
$trim = new \Zend\Filter\StringTrim();
foreach($tags as $key => $tag) {
$tag = $strip->filter($tag);
$tag = $trim->filter($tag);
$tags[$key] = $tag;
}
return $tags;
}))
)
);
Run Code Online (Sandbox Code Playgroud)
我意识到这是旧的,但你可以指定输入类型,ArrayInput并将InputFilter按预期处理它:
"name" => "tags",
"type" => "Zend\\InputFilter\\ArrayInput", // Treat this field as an array of inputs
"filter" => array(
array("name" => "StripTags"),
array("name" => "StringTrim")
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5643 次 |
| 最近记录: |