beforeSave回调在CakePHP中不起作用

时间:2013-12-10 00:44:07

标签: cakephp cakephp-2.1 cakephp-2.3

在我的菜单模型中,如果用户没有填充它,我正试图填充slug字段。

Model/Menu.php

    public function beforeSave($options = array()){
            if(
                isset($this->data[$this->alias]['name']) && 
                !isset($this->data[$this->alias]['slug'])
            ){
                     //than fill the slug field in the db for the user.
                $this->data[$this->alias]['slug'] = strtolower(Inflector::slug($this->data[$this->alias]['name'], '-'));
            }
        }//end function

但是如果不通过这种方法保存所有数据都不起作用。

1 个答案:

答案 0 :(得分:2)

根本不是那种方法。如果是,则不会保存,因为根据CakePHP Book中的说明,您没有return true;

您可能通过另一个模型的关联来保存菜单数据 - 在这种情况下,它会使用IT之前保存,而不是这个。