Zend Framework 2 - 过滤器
Zend Framework 2 - filters
ZF2 的新手并试图了解它的一些细微差别。
我有几个问题:
问题 1
我正在使用配置来设置表单域的输入过滤器(如下例)。当你在同一个元素上有一个过滤器和一个验证器时,过滤后的数据会传递给验证器吗?因此,在下面的示例中,如果我输入带有大量白色 space 的“Hello world”,那么白色 space 是否会在验证器对其求值之前从字符串中删除?
'name' => array(
'required' => true,
'filters' => array(
array('name' => 'Zend\Filter\StringTrim'),
),
'validators' => array(
array(
'name' => 'Zend\Validator\StringLength',
'options' => array(
'min' => 3,
'max' => 11
),
),
),
),
问题二
我见过人们仅使用名称设置过滤器的示例,例如'strtolower' 根据以下代码。我想不通的是这个别名是否设置在某个地方,比如 ValidatorPluginManager 中的验证器。过滤器的别名在哪里设置?
'name' => array(
'required' => true,
'filters' => array(
array('name' => 'strtolower'),
),
'validators' => array( /*validator stuff*/),
),
非常感谢任何建议,因为我一直在处理码头,但找不到这些问题的答案。
回旋曲
问题一
是的,当使用输入过滤器时,将首先过滤值,然后再进行验证。
问题2
查看 FilterPluginManager
以了解可用于 "stock" 过滤器的所有别名。
检查 ValidatorPluginManager
以获得验证器的概述。
@BramGerritsen 的回答非常正确,所以我赞成他的回答,但这里有一些关于他对您的问题 1 的回答的附加信息:
在某些特殊情况下,验证会在 过滤之前进行。一个例子是 the FileInput
class。对于文件上传,我们应该在执行任何其他操作之前验证文件,以便在可能 rename/move/modify 文件的任何过滤器之前完成任何验证...(检查 link)。
我可以想象其他人有自定义输入 类,他们也这样做(实际上我自己也有一些 类)。
ZF2 的新手并试图了解它的一些细微差别。
我有几个问题:
问题 1
我正在使用配置来设置表单域的输入过滤器(如下例)。当你在同一个元素上有一个过滤器和一个验证器时,过滤后的数据会传递给验证器吗?因此,在下面的示例中,如果我输入带有大量白色 space 的“Hello world”,那么白色 space 是否会在验证器对其求值之前从字符串中删除?
'name' => array(
'required' => true,
'filters' => array(
array('name' => 'Zend\Filter\StringTrim'),
),
'validators' => array(
array(
'name' => 'Zend\Validator\StringLength',
'options' => array(
'min' => 3,
'max' => 11
),
),
),
),
问题二
我见过人们仅使用名称设置过滤器的示例,例如'strtolower' 根据以下代码。我想不通的是这个别名是否设置在某个地方,比如 ValidatorPluginManager 中的验证器。过滤器的别名在哪里设置?
'name' => array(
'required' => true,
'filters' => array(
array('name' => 'strtolower'),
),
'validators' => array( /*validator stuff*/),
),
非常感谢任何建议,因为我一直在处理码头,但找不到这些问题的答案。
回旋曲
问题一
是的,当使用输入过滤器时,将首先过滤值,然后再进行验证。
问题2
查看 FilterPluginManager
以了解可用于 "stock" 过滤器的所有别名。
检查 ValidatorPluginManager
以获得验证器的概述。
@BramGerritsen 的回答非常正确,所以我赞成他的回答,但这里有一些关于他对您的问题 1 的回答的附加信息:
在某些特殊情况下,验证会在 过滤之前进行。一个例子是 the FileInput
class。对于文件上传,我们应该在执行任何其他操作之前验证文件,以便在可能 rename/move/modify 文件的任何过滤器之前完成任何验证...(检查 link)。
我可以想象其他人有自定义输入 类,他们也这样做(实际上我自己也有一些 类)。