Ich versuche, Daten in verstecktem Text in yii zu platzieren, aber ich weiß nicht wie. Ich brauche einen ähnlichen Code wie eine normale PHP-Syntax:
<input type="hidden" name="field_name" value="a"/>
Es soll ein Feld mit dem statischen Wert a sein. Ich brauche es nur, um mit meinen $ _POST-Variablen zur Fehlerprüfung zu gehen.
Kann ich vermeiden, die Modelle und Controller zu modifizieren, nur um das Feld einzutragen? Ich kann gii nicht verwenden, da ich nur Codeausschnitte bei mir habe. Tut mir leid, und ich habe wenig Verständnis für yii, sodass ich keine Ahnung habe ob das, was ich über die letzten 2 Sätze sage, richtig ist.
in Ansichten
verstecktes Feld mit Modell und Form:
<?php echo $form->hiddenField($model, 'name'); ?>
oder ohne Modell
<?php echo CHtml::hiddenField('name' , 'value', array('id' => 'hiddenInput')); ?>
In Yii2 hat sich auch dies geändert:
<?= Html::activeHiddenInput($model, 'name') ;?>
Verweise:
Yii versteckte Eingabe:
<?php echo $form->hiddenField($model,'fieldName',array('value'=>'foo bar')); ?>
wenn Daten aus Datenbank und Wert oder Größenfeld:
echo $form->hiddenField($experience,'job_title',array('size'=>'50','value'=>$experience_data['job_title'])); ?>
für yii2 kannst du das versuchen
<?= $form->field($model, 'user_type',['inputOptions' => ['value' => '2']])->hiddenInput()->label(false) ?>
Es hat bei mir funktioniert
Yii 1
<?php echo $form->hiddenField($model, 'name'); ?>
Yii2
<?= Html::activeHiddenInput($model, 'attribute', ['value' => 'Some Value']) ?>
Bemerkenswert für Yii2 ist auch, dass der Array-Parameter sich von einem normalen Formularfeld unterscheidet. Z.B. Eine normale Eingabe würde eher so aussehen.
<?= $form->field($model, 'attribute', ['inputOptions' => ['placeholder' => 'Some Placeholder', 'value' => 'Some Input Value']]) ?>
Hoffe das hilft.
Alternative,
echo CHtml::activeHiddenField($model,"[$i]id", array("value" => $model->id));
Dies würde den Wert des ausgeblendeten Feldes als ID des Modells festlegen. Das [$ i] ist nützlich für die Aktualisierung mehrerer Datensätze.
Hier sind zwei Möglichkeiten, dies zu tun ...
ohne Modell
echo CHtml::hiddenField('name' , 'value', array('id' => 'name'));
mit Modell
echo $form->hiddenField($model, 'name');