Как создать свой dropDownList в Yii2?

Как создать свой аналог yii\bootstrap4\Html\dropDownList в Yii2, что-бы он вызывался так же как обычно echo Html::dropDownList()? То есть наверно надо переписать как то этот класс? Подскажите пожалуйста.


Ответы (2 шт):

Автор решения: Алексей Шиманский

Вариант 1: Посмотреть как реализован виджет изначальный, плюс посмотреть информацию о том, как пишутся виджеты и написать свой с нуля.

Пример создания:

Вариант 2: Отнаследоваться от текущего и внести свои правки в методы, свойства уже своего виджета, которые необходимо

→ Ссылка
Автор решения: Starik

В папку widgets вашего приложения положите файл с именем Html.php и приведённым ниже содержимым. Скорректируйте под свои потребности содержимое функции dropDownList:

<?php

namespace app\widgets;

class Html extends \yii\bootstrap4\Html
{
    public static function dropDownList($name, $selection = null, $items = [], $options = [])
    {
        // Тут далее привожу стандартную генерацию дропдауна,
        // которую можно переписать под себя:
        if (!empty($options['multiple'])) {
            return static::listBox($name, $selection, $items, $options);
        }
        $options['name'] = $name;
        unset($options['unselect']);
        $selectOptions = static::renderSelectOptions($selection, $items, $options);

        return static::tag('select', "\n" . $selectOptions . "\n", $options);
    }
}
→ Ссылка