如何在Symfony2中过滤?

时间:2014-10-10 11:47:29

标签: symfony filter filtering

首先,我对Symfony 2很新,并开始学习。

是否有可能过滤值?也许过滤链呢? 我从Zend Framework 1和2中了解了这个概念。

E.g:

  • 我有一个字符串" 1A-N"
  • 现在我想过滤以便只传递数值;结果" 1"

我是否必须在我自己的i Symfony上实现这一点?

我想做点什么:

$text = '1A - N';
$numberFilter = new NumberFilter();
$filteredText = $numberFilter->filter($text);
//now in $text i find '1'

但是现在我在Symfony找不到这样的东西让我感到很惊讶。我认为它是一个完整的堆栈框架,这样的功能是如此基本。

我找到了类似验证器的东西,但他们只说一个值,例如仅包含数字。或者是symfony的验证概念,它不仅说它是否是数字,而且还过滤掉所有其他的smybols?

3 个答案:

答案 0 :(得分:1)

具体取决于您的需求:

  • 禁止用户输入不符合某些规则

    • 在表单中使用验证器
    • 在实体中使用断言
  • 在用户输入错误的情况下改变用户输入

    • 在表单中使用viewransformers
    • 在表单中使用事件侦听器
    • 使用事件监听器作为教义
  • 更改数据库中已存在的数据

    • 在树枝中使用过滤器
    • 创建一个从命令行执行的命令

您还可以尝试http://php.net/manual/ro/filter.filters.sanitize.php

答案 1 :(得分:0)

我已经使用Symfony构建了相当大的应用程序,并且从未需要这样的功能。过滤器主要用于视图中。 Symfony带有Twig,它有过滤器,可以链接,你可以编写自己的过滤器。但是如果你需要后端的过滤器来进行后台处理,你可以按照你的建议完成它。

我建议您编写一个界面并使用工厂模式,因此如果您制作了许多过滤器,则设置标准,这样可以更容易地进行链接工作;)

答案 2 :(得分:0)

在答案和搜索后我得出以下结论。 Symphony 2现在没有这个概念。 你必须自己写。