CakePHP 2.5动态模型验证:没有flash消息

时间:2014-06-04 22:24:30

标签: php validation cakephp

我正在重写CakePHP< = 2.2

的联系表单插件

在模型中,只有没有数据库表的虚拟字段。 对于动态使用,我需要在$this->Model->validator()->add()函数中使用beforeFilter()动态添加验证。

这有效,但我在视图中没有得到任何验证错误。 它们仅在调用$this->Model->validationErrors后存储在$this->Model->validates()

当我将验证移到$validate变量时,一切似乎都有效。 刷新消息和"所需"我的输入字段中的属性已设置。

我认为问题是在将验证规则添加到模型之前呈现视图。

有什么建议吗?谢谢

1 个答案:

答案 0 :(得分:0)

感谢Kai的想法!

这适用于模型:

public $validate = array();

public function __construct($id = false, $table = null, $ds = null) {
    parent::__construct();
    foreach(Configure::read('ContactForm.Fields') as $fieldname => $value) {
        $this->validate[$fieldname] = $value['validation'];
    }
}

配置如下所示:

Configure::write('ContactForm.Fields', array(
    'Name' => array(
        'schema' => array(
            'type' => 'string',
            'null' => false,
            'default' => '',
            'length' => '50'
        ),
        'validation' => array(
            'rule' => array('notempty'),
            'required' => true,
            'message' => 'please insert your name'
        )
    )
));

现在可以看到Flash消息;)