douxianglu4370 2014-06-04 22:24
浏览 11
已采纳

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

i am rewriting my contact form plugin for CakePHP <= 2.2

In the model there are virtual fields only without database table. For dynamic use, i need to add validation on the fly with $this->Model->validator()->add() in the beforeFilter() function.

This works, but I don't get any validation errors in the view. They are stored in $this->Model->validationErrors after calling $this->Model->validates() only.

When I move the validation into the $validate variable everything seems to work. Flush messages and the "required" attributes in my input fields are set.

I think the problem is rendering the view before adding the validation rules to the model.

Any suggestions? Thank you

  • 写回答

1条回答 默认 最新

  • dongyizhuang0134 2014-06-05 13:19
    关注

    Thanks to Kai for the idea!

    This works in the model:

    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'];
        }
    }
    

    The config looks like this:

    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 messages are visible now ;)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 求螺旋焊缝的图像处理
  • ¥15 blast算法(相关搜索:数据库)
  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?
  • ¥15 网络通信安全解决方案
  • ¥50 yalmip+Gurobi
  • ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面
  • ¥15 itunes恢复数据最后一步发生错误
  • ¥15 关于#windows#的问题:2024年5月15日的win11更新后资源管理器没有地址栏了顶部的地址栏和文件搜索都消失了
  • ¥100 H5网页如何调用微信扫一扫功能?
  • ¥15 讲解电路图,付费求解