嘿伙计们,我们公司正在寻求开始使用FuelPHP作为开发的主要框架。
我个人来自CakePHP背景,并且非常喜欢Cake处理很多事情的方式,例如验证 - 即在模型中设置一次规则,并且所有内容都协同工作以遵守规则。
然而,转向Fuel,看起来他们对此有不同的方法,需要在控制器中设置验证规则。这样做的缺点是许多重复的代码 - 即使你只有添加和编辑动作,这仍然是你需要定义规则的两个地方。 / p>
因此,我希望有人可以帮助我,让我知道模型是否可以处理验证?
谢谢:)
答案 0 :(得分:3)
由于我最近一直很忙,很遗憾我还没有完成记录。有几种选择:
创建一个set_form_fields(),用于验证您传递Fieldset类的实例,并应设置所有字段(包括验证)。一个例子可以是found here(虽然基于过时的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()
获取错误