Основное скрытое поле в yii
Я пытаюсь поместить данные в скрытый текст в yii, но я не знаю, как это сделать. Мне нужен код, аналогичный обычному синтаксису php:
<input type="hidden" name="field_name" value="a"/>
Предполагается, что это поле со статическим значением a. Мне просто нужно, чтобы он шел с моими переменными $_POST для проверки ошибок.
Можно ли избежать изменения моделей и контроллеров только для того, чтобы ввести поле?Я не могу использовать gii, потому что у меня с собой только фрагменты кода.Извините, а также я плохо понимаю yii, поэтому я понятия не имею, если то, что я говорю о последних 2 предложениях, верно.
8 answers
В представлениях
Скрытое поле с моделью и формой:
<?php echo $form->hiddenField($model, 'name'); ?>
Или без модели
<?php echo CHtml::hiddenField('name' , 'value', array('id' => 'hiddenInput')); ?>
Скрытый ввод Yii:
<?php echo $form->hiddenField($model,'fieldName',array('value'=>'foo bar')); ?>
В Yii2 это тоже изменилось:
<?= Html::activeHiddenInput($model, 'name') ;?>
Ссылки:
Если данные из базы данных и поле значения или размера:
echo $form->hiddenField($experience,'job_title',array('size'=>'50','value'=>$experience_data['job_title'])); ?>
Yii 1
<?php echo $form->hiddenField($model, 'name'); ?>
Yii2
<?= Html::activeHiddenInput($model, 'attribute', ['value' => 'Some Value']) ?>
Кроме того, стоит отметить, что для Yii2 параметр массива работает иначе, чем поле обычной формы. Например, Обычный ввод будет выглядеть примерно так.
<?= $form->field($model, 'attribute', ['inputOptions' => ['placeholder' => 'Some Placeholder', 'value' => 'Some Input Value']]) ?>
Надеюсь, это поможет.
Для yii2 вы можете попробовать это
<?= $form->field($model, 'user_type',['inputOptions' => ['value' => '2']])->hiddenInput()->label(false) ?>
Это сработало для меня
Альтернативно,
echo CHtml::activeHiddenField($model,"[$i]id", array("value" => $model->id));
Это установило бы значение скрытого поля в качестве идентификатора модели. [$i] полезен для многократного обновления записей.
Вот два способа сделать это...
Без модели
echo CHtml::hiddenField('name' , 'value', array('id' => 'name'));
С моделью
echo $form->hiddenField($model, 'name');