删除cakephp中表单提交中的字段中的标签

时间:2013-09-05 12:54:05

标签: php cakephp

我希望在表单提交期间将数据保存到数据库中之前对名为strip_tags的字段执行description。我想过创建一个自定义规则并在那里执行:

    'description' => array(

            'stripTags' =>array(
                    'rule' => array('StripTags'),
                    'message' => ''
            ),
    ),


public function StripTags($user = array()) {

        return !empty($user['description'])?strip_tags($user['description']):"";
    }

但是这不起作用,因为cakephp要求返回true / false而不是更新值。我该怎么做?

1 个答案:

答案 0 :(得分:1)

使用Model::beforeSave()回调,这是所有自动预保存数据修改逻辑应该去的。它在保存之前调用,但在验证之后调用。

未经测试的例子:

public function beforeSave($options = array())
{
    if(!parent::beforeSave($options))
    {
        return false;
    }

    if(!empty($this->data[$this->alias]['description']))
    {
        $this->data[$this->alias]['description'] = strip_tags($this->data[$this->alias]['description']);
    }

    return true;
}