大家好,我们公司正在寻求开始使用 FuelPHP 作为它的主要开发框架。
就我个人而言,我来自 CakePHP 背景,并且非常喜欢 Cake 处理很多事情的方式,例如验证 - 即在模型中设置一次规则,然后一切协同工作以遵守规则。
然而,进入Fuel,看起来他们有不同的方法,需要在控制器中设置验证规则。不利的一面是大量重复的代码——即,即使您只有添加和编辑操作,这仍然是您需要定义规则的两个地方。
因此,我希望有人能够帮助我,让我知道模型是否可以处理验证?
谢谢 :)
大家好,我们公司正在寻求开始使用 FuelPHP 作为它的主要开发框架。
就我个人而言,我来自 CakePHP 背景,并且非常喜欢 Cake 处理很多事情的方式,例如验证 - 即在模型中设置一次规则,然后一切协同工作以遵守规则。
然而,进入Fuel,看起来他们有不同的方法,需要在控制器中设置验证规则。不利的一面是大量重复的代码——即,即使您只有添加和编辑操作,这仍然是您需要定义规则的两个地方。
因此,我希望有人能够帮助我,让我知道模型是否可以处理验证?
谢谢 :)
由于最近太忙了,遗憾的是我没有抽出时间来记录很多东西。有几个选项:
创建一个 set_form_fields() 以与您传递 Fieldset 类的实例并应设置所有字段(包括验证)的验证一起使用。可以在此处找到一个示例(尽管基于过时的 Fuel 版本)。一旦你在你的模型中获得了这样的方法,你就可以使用Validation::factory()->add_model('Model_Example')
(规则也可以在模型中创建,在它们前面加上前缀_validation_
,你可以在添加模型时使用它们,像上面一样)
在 Orm\Model 类的属性中设置验证规则,$_properties
并像 1 一样添加模型。(Orm\Model 内置了 set_form_fields() 方法)
将 Orm\Observer_Validation 添加到您的 Orm\Model$_observers
属性和验证将在保存模型时完成,ValidationFailed
失败时抛出异常。在此之后,可以通过类名从 Validation 类中获取错误,例如:当 Model_Example 实例由于验证而无法保存时,您可以使用获取完整的验证实例Validation::instance('Model_Example')
或使用获取错误Validation::instance('Model_Example')->show_errors()