2015-04-30 3 views
2

Я хотел бы спросить, можно ли изменить исходные опубликованные атрибуты в actionCreate()?Yii, изменение оригинальных атрибутов

Например, у меня есть 3 атрибута: name, phNumber, address

В _form.php, он автоматически посты этих 3 атрибутов. НО что, если я хочу изменить опубликованный атрибут name для всех Uppercases? Мне нужно создать собственный метод создания записи, чтобы изменить способ записи name или есть что-то, что я могу сделать в actionCreate(), так что он изменяет только атрибут name?

Например, пользователь вводит в

адам Михаэля

для name текстового поля, и я хочу изменить только этот атрибут

ADAM MICHAEL

для записи в базе данных вместо того, чтобы создавать другой метод.

код ниже:

public function actionCreate() { 
    $model = new Masseuse; 

    if (isset($_POST['Masseuse'])) { 
     $model->setAttributes($_POST['Masseuse']);   

     if ($model->save()) { 
      if (Yii::app()->getRequest()->getIsAjaxRequest()) 
       Yii::app()->end(); 
      else 
       $this->redirect(array('servicemasseuse/create', 'mid' => $model->id)); 
     } 
    } 

    $this->render('create', array('model' => $model)); 
} 

ответ

0

Вы должны изменить пользовательский ввод перед сохранением данных. Вы делаете это, создавая перезаписанную функцию в своей модели.

class Masseuse extends CActiveRecord { 

    // ... 

    public function beforeSave() 
    { 
     $this->name = strtoupper($this->name) 
    } 
}