首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >yii2上的自定义验证过滤器

问yii2上的自定义验证过滤器
EN

Stack Overflow用户
提问于 2015-01-27 18:30:11
回答 1查看 9.9K关注 0票数 4

我需要从html标签,报价等过滤来自hmtl表单的数据。

似乎我需要根据http://www.yiiframework.com/doc-2.0/yii-validators-filtervalidator.html编写自己的过滤器回调函数。我在我的模型中有这些规则:

代码语言:javascript
复制
 public function rules()
    {
        return [
            [['name', 'email', 'phone',], 'required'],
            [['course'], 'string',],
            [['name', 'email', 'phone',], 'string', 'max'=>250],
            ['email', 'email'],
            [['name', 'email', 'phone'], function($value){
                return trim(htmlentities(strip_tags($value), ENT_QUOTES, 'UTF-8'));
            }],

        ];
    }

最后一条规则是我自己添加的过滤器。但它不起作用。标签、空格、qoutes不会被删除,这个过滤器甚至不会运行。如何实现我想要的,以及我做错了什么?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-27 18:41:50

您添加的验证器错误。如果你想使用FilterValidator (你在问题中提到的)而不是内联验证器,像这样修改你的代码:

代码语言:javascript
复制
[['name', 'email', 'phone'], 'filter', 'filter' => function($value) {
    return trim(htmlentities(strip_tags($value), ENT_QUOTES, 'UTF-8'));
}],

['name', 'email', 'phone']验证的属性。

filter -验证器短名称。请参阅合规性here的完整列表。

接下来的元素是将被传递给这个验证器的参数。在本例中,我们指定了filter参数。

在官方文档中查看特定验证器的完整可用参数列表。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28168253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档