web-dev-qa-db-fra.com

yii2 valeur d'entrée cachée

En Yii2 j'essaie de construire une entrée cachée

echo   $form->field($model, 'hidden1')->hiddenInput()->label(false);

Mais j'en ai aussi besoin pour avoir une option de valeur, comment puis-je le faire?

33
David

Changer la valeur ici n'a pas de sens, car c'est un champ actif. Cela signifie que la valeur sera synchronisée avec la valeur du modèle.

Il suffit de changer la valeur de $model->hidden1 pour la changer. Ou il sera changé après la réception des données de l'utilisateur après la soumission du formulaire.

Avec l'utilisation d'une entrée masquée non active, ce sera comme ça:

use yii\helpers\Html;

...

echo Html::hiddenInput('name', $value);

Mais ce dernier est plus approprié pour une utilisation en dehors du modèle.

30
arogachev

Utilisez le suivant: 

echo $form->field($model, 'hidden1')->hiddenInput(['value'=> $value])->label(false);
50
TimLeary

simple vous pouvez écrire:

<?= $form->field($model, 'hidden1')->hiddenInput(['value'=>'abc value'])->label(false); ?>
16
Umar Ali

Vous pouvez le faire avec les options

echo   $form->field($model, 'hidden1', 
      ['options' => ['value'=> 'your value'] ])->hiddenInput()->label(false);
12
scaisEdge

tu peux aussi faire ça

$model->hidden1 = 'your value';// better put it on controller
$form->field($model, 'hidden1')->hiddenInput()->label(false);

c'est une meilleure option si vous définissez une valeur sur le contrôleur

$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,
    ]);
 }
9
Ary Wibowo

Comme ça:

<?= $form->field($model, 'hidden')->hiddenInput(['class' => 'form-control', 'maxlength' => true,])->label(false) ?>
0
user8487780