【问题标题】:Validating actions in Symfony (PHP)在 Symfony (PHP) 中验证操作
【发布时间】:2011-03-24 17:45:10
【问题描述】:

我一直在阅读一些有关控制器验证/错误处理的 Symfony 文档。

http://www.symfony-project.org/book/1_2/06-Inside-the-Controller-Layer

验证和错误处理方法(仅下降三分之二)

我喜欢自动调用函数的想法 - 在调用 executeMyAction 之前先进行 validateMyAction,您可以控制使用哪种类型的视图,例如 myActionSucess 或 myActionError。

但是,它似乎不适用于 Symfony 1.4,我猜这种类型的错误处理/验证已被弃用,所以我不确定我应该如何使用 Symfony 1.4。

我知道 pre 和 post Execute 函数做类似的事情,但我更喜欢为每个操作提供一个专用的验证函数。

或者我现在应该使用过滤器吗?

感谢任何帮助/建议

【问题讨论】:

    标签: php validation error-handling symfony1


    【解决方案1】:
      public function preExecute()
      {
        $method = 'validate'.$this->getActionName();
        if (method_exists($this, $method))
        {
          if (!$this->{$method}())
          {
            return sfView::ERROR;
          }
        }
      }
    

    这样的东西可以模拟每个动作的验证器功能。但是我的下一个问题是,显示错误的最佳方式是什么?比如在验证函数中设置一个错误数组,然后在模板/视图中检查正在设置的错误数组,然后显示相关信息。然后可以将其扩展为警告/通知。

    【讨论】:

      【解决方案2】:

      这种验证在 symfony 1.0 和 1.1 中有效,但在 1.2 后被弃用,在 1.4 中被删除。它已被提供更多功能的表单框架所取代。我推荐你阅读 symfony 简介一书的 Chapter 10 (Forms)dedicated book for the form framework 也存在,但不完整 - 它仍然是现有小部件和验证器的一个很好的参考。

      【讨论】:

        猜你喜欢
        • 2020-03-25
        • 2015-02-07
        • 2016-04-04
        • 1970-01-01
        • 2014-10-21
        • 1970-01-01
        • 2021-07-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多