yii2: сделать флажок для проверки

Я использую структуру Yii2, и я хотел бы создать такой HTML-код

<input type="checkbox" id="queue-order" name="Queue[order]" value="1" checked>

в представлении, которое использует ActiveForm.

я пытался

echo $form->field($model, 'order')
          ->checkBox(['label' => ..., 'uncheck' => null, 'checked' => true]); 

так же как

echo $form->field($model, 'order')
          ->checkBox(['label' => ..., 'uncheck' => null, 'checked' => 'checked']); 

но желаемая строка «проверено» не отображается в сгенерированном HTML-коде.

Как ни странно, если я заменю "проверено" на "выбрано"

echo $form->field($model, 'order')
          ->checkBox(['label' => ..., 'uncheck' => null, 'selected' => true]); 

затем сгенерированный HTML-код содержит атрибут «выбрано»:

<input type="checkbox" id="queue-order" name="Queue[order]" value="1" selected>

Итак, как я могу сгенерировать html-код для флажка с атрибутом «проверено»?


person Andrew    schedule 01.06.2014    source источник


Ответы (2)


Я предполагаю, что этот флажок будет установлен только в том случае, если свойство $model->order принимает значение true, а если оно имеет значение false (0 или null или false и т. д.) - поле будет снято.

person Goodnickoff    schedule 01.06.2014
comment
То есть вы имеете в виду, что Yii всегда устанавливает статус флажка (установлен или не отмечен) на основе значения соответствующего свойства? А я не могу изменить статус чекбокса? Странно, если я правильно понял... - person Andrew; 01.06.2014
comment
@Mario Вы путаете разные способы получения предмета: yiiframework.com/doc-2.0/ и yiiframework.com/doc-2.0/ Если вы используете ActiveForm, то состояние флажка зависит от значения соответствующего свойства модели. - person Goodnickoff; 01.06.2014
comment
@Mario, если вы хотите генерировать ввод не на основе модели, вам следует использовать Html помощник (yiiframework.com/doc-2.0/yii-helpers-html.html): Html::checkbox( $name, $checked, $options)) - person Goodnickoff; 02.06.2014
comment
Спасибо, теперь я понял. Вы правы, мне лучше использовать вспомогательный класс Html, как вы упомянули, а не методы ActiveForm для создания нужного мне флажка (более того, мой флажок соответствует свойству из связанной таблицы/модели). Спасибо! - person Andrew; 02.06.2014

если вы устанавливаете внешнее значение в флажке.

<?php $model->order = "02256"; ?>
<?= $form->field($model, "order")->checkbox(['value' => "02256"]); ?>
person shivansh    schedule 14.07.2016