<?= $form->field($model, 'communication')->checkboxList(['Свет' => 'Свет', 'Газ' => 'Газ', 'Вода' => 'Вода']) ?>
/**
* Ваш класс ActiveRecord описывающий таблицу содержащую поле с типом SET
*
* @property string $communication Название поля в таблице хранящее SET-значения
* @property string[] $communicationArr Атрибут который будет обрабатывать все значения в виде массива
*/
class MyAR extends \yii\db\ActiveRecord
{
/**
* Формирование правил валидации атрибутов
*/
public function rules()
{
return [
// Ваши правила валидации атрибутов
[
// правило валидации для поля типа SET
'communication',
'string'
]
];
}
/**
* Формирование списка безопастных атрибутов
*/
public function scenarios()
{
return [
$this::SCENARIO_DEFAULT => [
// Список атрибутов которые можно загружать через метод load
'communicationArr'
] // атрибут с которым будем работать как с массивом
];
}
/**
* Геттер свойства сommunicationArr
*/
public function getCommunicationArr()
{
return explode(',', $this->communication);
}
/**
* Cеттер свойства сommunicationArr
*/
public function setCommunicationArr($value)
{
$this->communication = is_array($value) ? implode(',', $value) : '';
}
}
public static function getAllData()
{
return [
1 => 'Свет',
2 => 'Газ',
3 => 'Вода'
];
}