Поле флажка yii2 и настройте предварительный просмотр - PullRequest
1 голос
/ 12 февраля 2020

Я использую yii2-formwizard и хочу вставить флажок в качестве поля ввода формы для поля is_legal в табличном шаге. Поэтому в массиве fieldConfig, читая документацию, я вставил следующий код:

'is_legal' => [
    'options' => [
        'type' => 'checkbox',
    ],
    'labelOptions' => [
        'label' => \Yii::t('app', 'Legal Representative'),
    ],
],

На следующем рисунке показан результат:

Result

Однако, когда я go шаг предварительного просмотра, я вижу поле флажка, установленное как неопределенное: Step preview

Фактически, когда я пытаюсь сохранить модель поле is_legal не установлено.

Первый вопрос : в чем проблема с полем формы флажка?

Второй вопрос : Есть ли способ настроить шаг предварительного просмотра? Например, вместо «Шаг 5» я хотел бы написать «Правовые данные».

1 Ответ

1 голос
/ 12 февраля 2020

Я создал этот виджет, и есть несколько вещей, которые вам нужно знать.

Первый ответ

  • Отображаемое undefined это не value но label флажка, если вы посмотрите на функцию getLabel() в файле formwizard.js, она смотрит на братьев и сестер поля input для label и получает его текст

    let text = $('#' + fieldName).siblings('label').text();
    

    для отображения на этапе предварительного просмотра, и по умолчанию Yii2 переносит ввод в label как

    <label><input stype="checkbox"></label>
    

    , поэтому вам нужно использовать параметр template флажок, как показано ниже

    'is_legal' => [
        'options' => [
            'type' => 'checkbox',
            'template' => '{input}{beginLabel}{labelTitle}{endLabel}{error}{hint}',
        ],
        'labelOptions' => [
            'label' => \Yii::t('app', 'Legal Representative'),
        ],
    ],
    
    

Второй ответ

  • Нет, в настоящее время виджет не поддерживает пользовательский заголовок для разделов шага предварительного просмотра, но я думаю, Я могу добавить поддержку для предоставления заголовков заголовков, так как это имеет смысл, если это решит вашу проблему.

Обновление

Игнорировать Второй ответ как указано выше, я просто отправил обновления в ветку live, теперь вы можете использовать опцию previewHeading в наборе шагов тинги. Обновите composer, запустив composer update, чтобы обновить его до последней версии и очистить кэш с помощью CTRL + F5 .

. Как использовать следующий пример кода previewHeading опция

use buttflattery\formwizard\FormWizard;

echo FormWizard::widget([
    'enablePreview'=>true,
    'steps'=>[
        [
            'model'=>$user,
            'title'=>'My Shoots',
            'previewHeading'=>'My Heading Step 1',
            'description'=>'Add your shoots',
            'formInfoText'=>'Fill all fields'
        ],
        [
            'model'=> $profile,
            'title'=>'My Shoots',
            'previewHeading'=>'My Heading Step 2',
            'description'=>'Add your shoots',
            'formInfoText'=>'Fill all fields'
        ],
    ]
]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...