Modifying a model attribute won't make it to the DB in Yii's CActiveRecord::beforeSave()

StackOverflow https://stackoverflow.com/questions/4000763

  •  25-09-2019
  •  | 
  •  

Question

I'm implementing HTML sanitization for form fields, on the beforeSave() method of a model. But it doesn't work.
Example:

public function beforeSave()
{
  $this->anAttribute = 'somevalue';
  var_dump( $this->anAttribute );
}

somevalue is actually outputted, but it never gets to the DB, so in between beforeSave() and save() the value is lost and what's saved is the original form field value.

Was it helpful?

Solution

You have to change your line

public function beforeSave()
{
  $this->anAttribute = 'somevalue';
  return true;
}

OTHER TIPS

How about using afterValidate() instead of beforeSave() ?

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