FuelPHP中类似CakePHP的验证

时间:2011-05-19 10:59:42

标签: validation cakephp fuelphp

嘿伙计们,我们公司正在寻求开始使​​用FuelPHP作为开发的主要框架。

我个人来自CakePHP背景,并且非常喜欢Cake处理很多事情的方式,例如验证 - 即在模型中设置一次规则,并且所有内容都协同工作以遵守规则。

然而,转向Fuel,看起来他们对此有不同的方法,需要在控制器中设置验证规则。这样做的缺点是许多重复的代码 - 即使你只有添加编辑动作,这仍然是你需要定义规则的两个地方。 / p>

因此,我希望有人可以帮助我,让我知道模型是否可以处理验证?

谢谢:)

1 个答案:

答案 0 :(得分:3)

由于我最近一直很忙,很遗憾我还没有完成记录。有几种选择:

  1. 创建一个set_form_fields(),用于验证您传递Fieldset类的实例,并应设置所有字段(包括验证)。一个例子可以是found here(虽然基于过时的Fuel版本)。在模型中有这样的方法后,您可以使用Validation::factory()->add_model('Model_Example') (规则也可以在模型中创建,前缀为_validation_,您可以在添加上述模型时使用它们)

  2. 在Orm \ Model类的$_properties属性中设置验证规则,并添加与1一样的模型。(Orm \ Model内置了set_form_fields()方法)

  3. 将Orm \ Observer_Validation添加到您的Orm \ Model $_observers属性,并在保存模型时进行验证,失败时抛出ValidationFailed异常。在此之后,可以通过Validation类中的类名获取错误,例如:当Model_Example实例因验证而失败时,您可以使用Validation::instance('Model_Example')获取完整的验证实例,或使用Validation::instance('Model_Example')->show_errors()获取错误