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

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';" />

Nexus 5x Как продлить жизнь аккумулятора

LG Nexus 5x изначально жил 1 - 1.5 дня от батареи, что не сильно вдохновляло. В этом посте расскажу все свои действия по оптимизации энергопотребления. Список того, что было сделано 1.Отключил просыпание телефона когда берешь в руки 2.Отключил OK Google при выключенном телефоне 3.Отключил подсказки Google Now 4.Сократил время отключения дисплея на максиму 5.Удалил privat24, в android 7.1.1 писало потребление энергии 11% что не мало Итого Nexus 5x при постоянно включенном wi-fi работает вторые сутки. Если верить статистике проживет 2 дня 8 часов. Точных скриншотов не предоставлю, долго бегал по настройкам девайса и уже точно не помню где все эти настройки.