Как добавить заполнитель в Select2 Widget - Yii2 - PullRequest
0 голосов
/ 15 мая 2018

Я работаю на странице yii2, и у меня возникают проблемы с добавлением заполнителя или приглашения в виджет Select2. Вот мой код:

<?php

use yii\helpers\Html;
use kartik\widgets\ActiveForm;
use kartik\builder\Form;
use kartik\datecontrol\DateControl;
use yii\helpers\ArrayHelper;

/**
 * @var yii\web\View $this
 * @var app\models\FinancialAccounts $model
 * @var yii\widgets\ActiveForm $form
 */
?>

<div class="financial-accounts-form">

    <?php $form = ActiveForm::begin(['type' => ActiveForm::TYPE_VERTICAL]); echo Form::widget([

        'model' => $model,
        'form' => $form,
        'columns' => 1,
        'attributes' => [

            'type_id' => ['type' => Form::INPUT_WIDGET, 'widgetClass'=>'\kartik\widgets\Select2', 'options' => ['data'=>ArrayHelper::map(app\models\FinancialAccountType::find()->all(), 'type_id', 'name')]],

            'account_name' => ['type' => Form::INPUT_TEXT, 'options' => ['placeholder' => 'Enter Account Name...', 'maxlength' => 100]],

            'account_code' => ['type' => Form::INPUT_TEXT, 'options' => ['placeholder' => 'Enter Account Code...', 'maxlength' => 10]],

            'parent_id' => ['type' => Form::INPUT_WIDGET, 'widgetClass'=>'\kartik\widgets\Select2', 'options' => ['data'=>ArrayHelper::map(app\models\FinancialAccounts::find()->all(), 'account_id', 'account_name'), 'placeholder' => 'Select a Parent Account...']],

            'description' => ['type' => Form::INPUT_TEXT, 'options' => ['placeholder' => 'Enter Description...', 'maxlength' => 250]],

        ],

    ]);

    echo Html::submitButton($model->isNewRecord ? Yii::t('app', 'Create') : Yii::t('app', 'Update'),
        ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary']
    );
    ActiveForm::end(); ?>

</div>

Проблема в атрибуте parent_id, поскольку я не могу добавить заполнитель в качестве опции, как рекомендует большинство учебников. Каждый раз, когда я пытаюсь это сделать, я получаю сообщение об ошибке:

Unknown Property – yii\base\UnknownPropertyException
Setting unknown property: kartik\widgets\Select2::placeholder

Кто-нибудь знает, как я могу решить это? Моя главная проблема заключается в том, что я не могу оставить этот параметр пустым при отправке данных, но это одна из возможностей. Это заставляет меня отправить выбранный предмет.

1 Ответ

0 голосов
/ 15 мая 2018

Вы заметите, что если вы будете тщательно следовать примерам в документации , заполнитель должен быть заключен в массив options .

'parent_id'     => [
    'type'        => Form::INPUT_WIDGET,
    'widgetClass' => '\kartik\widgets\Select2',
    'options'     => [
        'data'        => ArrayHelper::map(app\models\FinancialAccounts::find()
            ->all(), 'account_id', 'account_name'),
        'options'       => ['placeholder' => '...'],
        'pluginOptions' => ['allowClear' => true],
    ]
],
...