У меня есть модель ActiveRecord и вид для формы обновления этой модели. Также у меня есть геттер и сеттер в классе модели, который выглядит следующим образом
public function setTopvisorGoogleRegion($value)
{
$this->myvalue = $value;
return(true);
}
public function getTopvisorGoogleRegion()
{
return([1 => '123']); //I return this array for show you essence of the problem
}
Следуя логике в этом коде, $ model-> topvisorgoogleregion должен вернуть [1 => '123']
В виду у меня есть следующий код
<?php echo($form->field($model, topvisorgoogleregion)->textInput());?>
<?php echo $form->field($model, 'topvisorgoogleregion')->widget(Select2::classname(), [
'data' => [1 => '123', 2 => '456'],
'options' => [
'id'=>'projectCtrl',
'placeholder' => 'Select option',
'multiple' => true
],
'pluginOptions' => [
'allowClear' => true,
'tags' => true,
],
]);
?>
Когда я открываю форму, я хочу видеть вариант 1 => «123», уже выбранный в Select2. Это логично, потому что, когда уже существующая запись обновляется, ActiveRecord получает данные, которые уже сохранены в модели (в данном случае, с использованием getter), и заполняет поля с учетом этих данных (в первом поле, которое использует textInput, я вижу текст «Array», потому что getter в модели возвращает массив). Но Select2 пуст, когда я открываю страницу обновления. Что не так?
Если я удаляю первое поле (textInput), ничего не меняется