CakePHP Code Snippet: Return only fields with values to the DB upon saving.

This code goes in {ModelName}::beforeSave:

foreach ($this->data[$this->name] as $key => $value) {
    if (!set::classicExtract($this->data,$this->name . '.' . $key)) {
        $this->data = set::remove($this->data,$this->name . '.' . $key);
    }
}

I use it where the DB may be expecting values for certain fields that are optional in the UI, and therefore may be returned empty by the controller.

This entry was posted in CakePHP. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>