Правильный подход использования Select2

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
Vi_ru_S
Сообщения: 25
Зарегистрирован: 2018.08.14, 07:39
Откуда: Владивосток
Контактная информация:

Правильный подход использования Select2

Сообщение Vi_ru_S » 2018.11.10, 05:03

Всем привет. Скажите пожалуйста на сколько правильный подход использование такого кода во View

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

<?php

use kartik\select2\Select2;
use yii\helpers\ArrayHelper;
?>
<?=

$form->field($model, 'id_types_price', [
])->widget(Select2::classname(), [
    'language' => 'ru',
    'hideSearch' => true,
    'data' => ArrayHelper::map(\backend\models\CatalogTypesPriceNomenclature::find()->select(['id', 'name'])->asArray()->all(), 'id', 'name'),
    'options' => ['placeholder' => 'Выберете тип цены...', 'value' => 1],
]);
?>


<?= $form->field($model, 'buyer')->checkbox() ?>

<?= $form->field($model, 'provider')->checkbox() ?>
Если есть другие варианты более лаконичного использования выложите пожалуйста пример. Спасибо.
В действительности все иначе чем на самом деле. Антуан де Сент Экзюпери

Аватара пользователя
SiZE
Сообщения: 2597
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Правильный подход использования Select2

Сообщение SiZE » 2018.11.10, 07:59

Такого конечно же быть в представлении не должно

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

\backend\models\CatalogTypesPriceNomenclature::find()->select(['id', 'name'])->asArray()->all()
Результат из контроллера передаем в представление

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

$catalogTypesPriceNomenclatureList = ArrayHelper::map(\backend\models\CatalogTypesPriceNomenclature::find()->select(['id', 'name'])->asArray()->all(), 'id', 'name'),
Зачем это?

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

'value' => 1
Обращай внимание на регистр className() !== classname(). Если php >=5.5 то пишем Select2::class

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

Select2::classname(),
Если во всем проекте используются одни и те же параметры, имеет смысл заинжектить их, а создавать объект Select2 надо будет через Yii::createObject(Select2::class) или, как в случае с вызовом ->widget достаточно передать Select2::class

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

'language' => 'ru',
например в конфиге

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

$config = [
    'container' => [
        'definitions' => [
            'namespace\to\Select2' => ['language' => 'ru'],
        ],
    ]
];
ну или наследовать.

Аватара пользователя
Vi_ru_S
Сообщения: 25
Зарегистрирован: 2018.08.14, 07:39
Откуда: Владивосток
Контактная информация:

Re: Правильный подход использования Select2

Сообщение Vi_ru_S » 2018.11.10, 14:21

SiZE писал(а):
2018.11.10, 07:59

Зачем это?

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

'value' => 1
Это значение по умолчанию.
В действительности все иначе чем на самом деле. Антуан де Сент Экзюпери

Аватара пользователя
SiZE
Сообщения: 2597
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Правильный подход использования Select2

Сообщение SiZE » 2018.11.12, 11:25

Vi_ru_S писал(а):
2018.11.10, 14:21
SiZE писал(а):
2018.11.10, 07:59

Зачем это?

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

'value' => 1
Это значение по умолчанию.
Не

Ответить