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 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘