I have a problem with my Yii2 Select2 field because it's not retrieving inserted values from the database, showing the placeholder all the time.
I tried using a method to retrieve the inserted values from the database and put them in the 'value' field attribute, but when saving the form they resulted in duplicate entries, meaning that the real records are still in the field but kinda hidden.
What can I do about it to show the inserted values in the Select2?
This is the form field
<div class="col-md-4">
<?php $users = ArrayHelper::map(Profile::getActiveUsers(), 'id', 'name');
echo $form->field($model, 'assignment', ['options' => [
'class' => 'form-group form-group-default form-group-default-select2']])
->widget(Select2::className(), [
'data' => $users,
'options' => [
'placeholder' => 'Select users...',
'multiple' => true,
],
'pluginOptions' => [
'allowClear' => true,
'multiple' => true,
],
'theme' => Select2::THEME_DEFAULT,
])->label('Users');?>
</div>
I tried adding inside 'options' something like 'value' => methodToGetInsertedValues() but as I said before, it gives error of duplicate entries
Managed to solve the issue by setting the value in my action controller. I retrieved the records, assigned them to the field value, and delete them all before saving the model.
Something like
then before saving the model