Как сделать такое: Если название страницы изменилось, а файл с картинкой загружен не был, то изменить название существующей картинки на название страницы
или хотябы
Как сравнить записи с данными, которые были получены из модели (при ее загрузке) типа update/id/1 с новыми данными, до ее сохранение (что то вроде $model->name != $_POST['page']['name'])
Что я только не пробывал:
Код: Выделить всё
$model = new Page;
if ($model->name != $_POST['Page']['name'] && $_POST['Page']['image']) // не получилось, а ведь $_POST['Page']['image'] содержит пустую строку,а название страницы я менял.....
$model = new Page;
$oldModel = $model; // почему то всегда возвращает данные из $model->name, даже если обращатся в теле условия
if ($model->save())
{
// $model->name == $oldModel->name - почему?
}
пробовал и $_FILES['Page']['image']
Код: Выделить всё
public function actionCreate()
{
$model = new Manufacture;
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
if(isset($_POST['Manufacture']))
{
$model->attributes=$_POST['Manufacture'];
$model->img = CUploadedFile::getInstance($model,'image');
if($model->save())
{
// загружаем картинку и изменяем ее.
$file = Yii::getPathOfAlias('webroot.upload.manufactures').'/'.$model->image;
$model->img->saveAs($file);
Yii::app()->ih
->load($file)
->resize(310, 100, false)
->save($file)
;
$this->redirect(array('view','id'=>$model->id));
}
}
$this->render('create',array(
'model'=>$model,
));
}
Код: Выделить всё
public function beforeSave()
{
$this->alias = Translite::toTranslite($this->manufacture_name);
if (isset($this->img))
$this->image = $this->alias.'.'.$this->img->extensionName;
return parent::beforeSave();
}