К основному контенту

YII2 checkboxList checked serialize

YII2 checkboxList checked serialize
Пишу сюда, может кому будет полезно.
Суть вопроса такая, пишу сайт, на котором есть способы доставки с привязкой к методам оплаты.
В модели добавил метод beforeSave() для записи массива 

public function beforeSave($insert)
{
    if (parent::beforeSave($insert)) {
            $this->payment_methods = serialize($this->payment_methods);
        return true;
    } else {
        return false;
    }
}


в отображении делаем так

<?= $form->field($model, 'payment_methods')->checkboxList(
    ArrayHelper::map(
        PaymentMethods::find()->all(),'id','name'    )
)?>

а вот главный вопрос, как сделать чекбоксы отмеченными при редактировании записи, если они ранее были отмечены. Я решил этот вопрос добавив метод в модель

public function afterFind(){
    $this->payment_methods = unserialize($this->payment_methods);
}

Комментарии

Популярные сообщения из этого блога

Товар которого нет в наличии делаем в конце opencart

Товар которого нет в наличии делаем в конце 

Принудительный вывод 404 или редирект на 404 Opencart

Допустим, при каком то условии Вам нужно вывести 404 страницу в Opencart, для это используете такой код в контроллере: //отправляем заголовок 404 $this->response->addHeader($this->request->server['SERVER_PROTOCOL'] . '/1.1 404 Not Found'); //перенаправляем на страницу 404  return $this->forward('error/not_found');

Подсветка статусов заказа в opencart

Подсветка статусов заказа в opencart