Как обновлять информацию в select2 (kartik) при открытии списка, а не после ввода в поле поиск?

Для обновления информации в select2 при открытии списка (а не после ввода в поле поиска) в Yii с помощью расширения Kartik Select2, вы можете использовать событие select2:open и вызывать функцию обновления данных.

Вот пример реализации этой функциональности:

1. Установите расширение Kartik Select2, добавив строку в файл composer.json:

 "require": {
     "kartik-v/yii2-widget-select2": "@dev"
 },

2. Запустите команду composer update, чтобы установить расширение.

3. В вашей форме добавьте поле select2, как показано ниже:

<?= Select2::widget([
    'name' => 'select-field',
    'data' => $data,
    'options' => [
        'multiple' => true,
        'placeholder' => 'Select value',
    ],
    'pluginOptions' => [
        'allowClear' => true,
        'minimumInputLength' => 3,
    ],
]) ?>

4. Добавьте JavaScript код:

$(document).ready(function() {
    // При открытии списка select2 вызывается событие 'select2:open'
    // Мы привязываем обработчик события, который обновляет данные
    $('select[name="select-field"]').on('select2:open', function() {
        // Выполняйте здесь код обновления данных
        // Например, отправляйте AJAX-запрос и обновляйте данные в поле select2 
    });
});

В этом примере, когда пользователь открывает выпадающий список select2, событие select2:open срабатывает и вызывает обработчик события, который содержит код обновления данных. Вам нужно будет выполнить необходимый код обновления данных, например, отправить AJAX-запрос на сервер и получить новые данные, а затем обновить поле select2 с помощью метода updateSelect2Data.

Обратите внимание, что в этом примере я использовал версию "yii2-widget-select2" от "kartik-v". Если вы используете другую версию расширения, пожалуйста, обратитесь к его официальной документации для получения подробной информации о событиях и методах, доступных для использования.