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

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

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

Как заменить “сломанное” изображение?

Как заменить “сломанное” изображение? Случается так, что на странице по различного рода причинам могут не загрузиться те или иные изображения. Это негативно сказывается на восприятии контента. Средствами JavaScript мы можем заменить такие изображения, какими-то заглушками. Напишем функцию обработчик события  onError : function imgError(image) { image.onerror = ""; image.src = "/images/noimage.gif"; return true; } Воспользуемся нашей функцией, указав её в атрибуте onerror элементов img. <img src="image.png" onerror="imgError(this);"/> Или вариант без использования целой функции: <img src="image.png" onError="this.onerror=null;this.src='/images/noimage.gif';" />

Редактирование заказа opencart 1.5.1.3 часть 2

Редактирование заказа opencart 1.5.1.3 часть 2 Как и обещал по поводу доработок , сегодня добавил редактирование колличества в заказе, сумма при этом пересчитывается автоматом , только итоговая сумма не пересчитывается .