我希望在表单提交期间将数据保存到数据库中之前对名为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而不是更新值。我该怎么做?
答案 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;
}