2

大家好,我们公司正在寻求开始使​​用 FuelPHP 作为它的主要开发框架。

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

然而,进入Fuel,看起来他们有不同的方法,需要在控制器中设置验证规则。不利的一面是大量重复的代码——即,即使您只有添加编辑操作,这仍然是您需要定义规则的两个地方。

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

谢谢 :)

4

1 回答 1

3

由于最近太忙了,遗憾的是我没有抽出时间来记录很多东西。有几个选项:

  1. 创建一个 set_form_fields() 以与您传递 Fieldset 类的实例并应设置所有字段(包括验证)的验证一起使用。可以在此处找到一个示例(尽管基于过时的 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()

于 2011-05-19T14:58:37.297 回答