Задать dropDownList заранее выбранные элементы

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
codrilla
Сообщения: 173
Зарегистрирован: 2013.03.06, 12:24
Откуда: Молдова, Тирасполь

Задать dropDownList заранее выбранные элементы

Сообщение codrilla »

В форме обновления модели Car есть следующий код

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

<?=
    $form->field($modelFuelType, 'id[]')->dropDownList(
        $model->fuelTypeOptions,
        ['multiple' => true]
    )->label(Yii::t('app', 'Тип топлива')) ?>
Задача состоит в том, чтобы передать в этот выпадающий список значения, которые уже установлены для данной модели. Более общая задача состоит в том, чтобы была возможность редактирования связи многие ко многим. То есть при добавление автомобиля можно было добавить типы топлива, а при редактировании поменять. Подскажите как решить задачу. Может я вообще не в том направлении двигаюсь? Заранее благодарю.
codrilla
Сообщения: 173
Зарегистрирован: 2013.03.06, 12:24
Откуда: Молдова, Тирасполь

Re: Задать dropDownList заранее выбранные элементы

Сообщение codrilla »

В качестве временной меры сделал так:

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

<div class="form-group field-car-gearbox_type">
        <label class="control-label" for="field-fuelType-id"><?= Yii::t('app', 'Тип топлива') ?></label>
        <br/>
        <?=
        Html::listBox(
            'FuelType[id][]',
            \yii\helpers\ArrayHelper::map($model->fuelType, 'id', 'id'),
            $model->fuelTypeOptions,
            ['multiple' => true, 'id' => 'field-fuelType-id']
        ) ?>
    </div>
Но этот вариант кажется не совсем правильным, хоть и удовлетворяет всем условиям.
ATI
Сообщения: 69
Зарегистрирован: 2009.09.27, 12:35

Re: Задать dropDownList заранее выбранные элементы

Сообщение ATI »

Заполни $model->fuelTypeOptions, yii дальше сделает все сам.
codrilla
Сообщения: 173
Зарегистрирован: 2013.03.06, 12:24
Откуда: Молдова, Тирасполь

Re: Задать dropDownList заранее выбранные элементы

Сообщение codrilla »

ATI писал(а):Заполни $model->fuelTypeOptions, yii дальше сделает все сам.
Не понял совета. Можно подробнее?
ivahaev
Сообщения: 30
Зарегистрирован: 2014.06.24, 09:12

Re: Задать dropDownList заранее выбранные элементы

Сообщение ivahaev »

А поле так и называется "id[]"?
codrilla
Сообщения: 173
Зарегистрирован: 2013.03.06, 12:24
Откуда: Молдова, Тирасполь

Re: Задать dropDownList заранее выбранные элементы

Сообщение codrilla »

id конечно же, но для multiple списка это ведь не принципиально, оно автоматически скобки добавит, если я их не укажу. А к чему вопрос?
rak
Сообщения: 2181
Зарегистрирован: 2010.11.02, 23:40
Контактная информация:

Re: Задать dropDownList заранее выбранные элементы

Сообщение rak »

нужно просто заполнить поле

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

<?php
$modelFuelType->ids = [1,2,3];
?>
...

<?=
    $form->field($modelFuelType, 'ids')->dropDownList(
        $model->fuelTypeOptions,
        ['multiple' => true]
    )->label(Yii::t('app', 'Тип топлива')) ?>
codrilla
Сообщения: 173
Зарегистрирован: 2013.03.06, 12:24
Откуда: Молдова, Тирасполь

Re: Задать dropDownList заранее выбранные элементы

Сообщение codrilla »

rak, спасибо. Можно рассмотреть как вариант.
Ответить