Ситуация на Yii(версия 1).
В базе есть таблица "Продукты". В продукта есть поля:
'promo' => 'Акционный',
'status_new' => 'Новинка',
'status_ends' => 'Заканчивается',
'status_leader' => 'Лидер продаж',
'status_shop_select' => 'Выбор магазина',
'status_super_price' => 'Супер цена',
Каждое поле может иметь значение 1 или 0.
В форме есть поле в котором выбирается статус:
<?php echo $form->dropDownList($model, 'promo_status',
array(
'promo' => 'Акционный',
'status_new' => 'Новинка',
'status_ends' => 'Заканчивается',
'status_leader' => 'Лидер продаж',
'status_shop_select' => 'Выбор магазина',
'status_super_price' => 'Супер цена',
),
array('empty' => 'Выберите статус')
);?>
В модели добавлена переменная
$promo_status, которую получаем с формы и с помощью фильтров в правилах записываем соответствующие значения в нужные поля:
public function rules()
{
return array(
...
array('promo_status', 'safe'),
array('status_new', 'filter', 'filter'=> function (){ return ($this->promo_status == 'status_new') ? 1 : 0; }),
array('promo', 'filter', 'filter'=> function (){ return ($this->promo_status == 'promo') ? 1 : 0; }),
array('status_ends', 'filter', 'filter'=> function (){ return ($this->promo_status == 'status_ends') ? 1 : 0; }),
array('status_leader', 'filter', 'filter'=> function (){ return ($this->promo_status == 'status_leader') ? 1 : 0; }),
array('status_shop_select', 'filter', 'filter'=> function (){ return ($this->promo_status == 'status_shop_select') ? 1 : 0; }),
array('status_super_price', 'filter', 'filter'=> function (){ return ($this->promo_status == 'status_super_price') ? 1 : 0; }),
);
}
Проблема заключается в следующем: при обновлении товара в форму подтягиваются значения с базы данных, кроме поля
promo_status, поскольку такого поля нет в базе. Как сделать чтобы поле
promo_status по-умолчанию получало значение статуса? Например, если статус в базе
'status_new', то при обновлении товара автоматически устанавливалось значение в поле
promo_status тоже
'status_new', то есть чтобы оно не было пустым.