在YII中的CGridView中创建自定义高级搜索过滤器

时间:2015-02-06 11:02:17

标签: yii cgridview

我有一个包含其他字段的电子邮件的模型。 我希望在Yii CGridView的高级搜索中使用自定义过滤器,在应用时,仅列出无效的电子邮件ID(使用正则表达式'^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$'

注意:我不想在CGridView中添加任何列

1 个答案:

答案 0 :(得分:0)

我希望能帮到你,

你需要几件事

  1. 在您选择的列中进行过滤的行...(我建议您为此创建一个新属性,如果您想了解更多原因,请在评论中询问我。)这当然是在cgridview中:

    'filter'=> CHtml :: activeCheckBox($ model,$ attributeEmail)

  2. 搜索带来模型的函数的条件。

  3. 假设您的模型中有一个搜索条件,可以帮助您过滤所需的内容......

    if($this->EMAIL == TRUE)
    {
        $criteria->addCondition("\"t\".\"EMAIL\" email NOT LIKE '%_@__%.__%'");
    }
    

    为什么不使用正则表达式并采用KISS方法?最好先阅读一下......

    Sql script to find invalid email addresses

    我很高兴听到你的评论对于yii dev的btw来说是个有趣的问题