Question

In my Menu model I'm trying to fill the slug field if the user didn't fill it.

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

but it doesn't work all the data are saved without going throught this method.

Was it helpful?

Solution

It's not going through that method at all. If it was, it would not save, since you didn't return true; per the instructions in the CakePHP Book.

You're likely saving Menu data through an association of another model - in which case, it would use IT'S beforeSave, not this one.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top