In Yii2 versuche ich versteckte Eingaben zu konstruieren
echo $form->field($model, 'hidden1')->hiddenInput()->label(false);
Aber ich brauche auch eine Wertoption, wie kann ich das tun?
Das Ändern des Werts hier ist nicht sinnvoll, da es ein aktives Feld ist. Dies bedeutet, dass der Wert mit dem Modellwert synchronisiert wird.
Ändern Sie einfach den Wert von $model->hidden1
, um ihn zu ändern. Oder es wird geändert, nachdem Daten vom Benutzer nach dem Senden des Formulars empfangen wurden.
Bei der Verwendung von nicht aktiven verborgenen Eingaben wird es so sein:
use yii\helpers\Html;
...
echo Html::hiddenInput('name', $value);
Letzteres ist jedoch eher für die Verwendung außerhalb des Modells geeignet.
Verwenden Sie folgendes:
echo $form->field($model, 'hidden1')->hiddenInput(['value'=> $value])->label(false);
einfach kannst du schreiben:
<?= $form->field($model, 'hidden1')->hiddenInput(['value'=>'abc value'])->label(false); ?>
Sie können es mit den Optionen machen
echo $form->field($model, 'hidden1',
['options' => ['value'=> 'your value'] ])->hiddenInput()->label(false);
sie können das auch tun
$model->hidden1 = 'your value';// better put it on controller
$form->field($model, 'hidden1')->hiddenInput()->label(false);
dies ist eine bessere Option, wenn Sie einen Wert am Controller einstellen
$model = new SomeModelName();
if ($model->load(Yii::$app->request->post()) && $model->save()) {
return $this->redirect(['view', 'id' => $model->group_id]);
} else {
$model->hidden1 = 'your value';
return $this->render('create', [
'model' => $model,
]);
}
So was:
<?= $form->field($model, 'hidden')->hiddenInput(['class' => 'form-control', 'maxlength' => true,])->label(false) ?>