Баг с Html::dropDownList()

Уже исправленные репорты или принятые предложения
Закрыто
melamber
Сообщения: 5
Зарегистрирован: 2014.12.11, 10:29

Баг с Html::dropDownList()

Сообщение melamber »

В методе

Код: Выделить всё

yii\helpers\Html::dropDownList( $name, $selection = null, $items = [], $options = [] )
агрумент options не принимает массив массивов.

При следующем коде:

Код: Выделить всё

<?=  yii\helpers\Html::dropDownList('city', 0, $model->select(), ['id'=>"baz-city", 0 => ['disabled' => true]]) ?>
выдает ошибку:
PHP Warning – yii\base\ErrorException
htmlspecialchars() expects parameter 1 to be string, array given

В документации:
options: array, the attributes for the select option tags. The array keys must be valid option values, and the array values are the extra attributes for the corresponding option tags. For example,

[
'value1' => ['disabled' => true],
'value2' => ['label' => 'value 2'],
];
Но, могу и ошибаться...
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Баг с Html::dropDownList()

Сообщение zelenin »

Код: Выделить всё

['id'=>"baz-city", 0 => ['disabled' => true]] 
зачем в массиве еще один массив?
melamber
Сообщения: 5
Зарегистрирован: 2014.12.11, 10:29

Re: Баг с Html::dropDownList()

Сообщение melamber »

А как задать аттрибуты для полей(<option>)? 0 это значение поля. Если задать одномерный массив, то аттрибуты будут примняться к тегу <select>.
В yii\widgets\ActiveField есть такой же метод, конечно подход немного другой, через ActiveForm, но аргумент options такой-же.

Код: Выделить всё

yii\widgets\ActiveField::dropDownList( $items, $options = [] ) 
Но тут все работает как надо.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Баг с Html::dropDownList()

Сообщение zelenin »

судя по всему, вам нужно

Код: Выделить всё

[
'id'=>"baz-city",
'options' => [
    0 => ['disabled' => true]
] 
melamber
Сообщения: 5
Зарегистрирован: 2014.12.11, 10:29

Re: Баг с Html::dropDownList()

Сообщение melamber »

Да, так рабтает). Спасибо.
Закрыто