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?
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.
Utilisez le suivant:
echo $form->field($model, 'hidden1')->hiddenInput(['value'=> $value])->label(false);
simple vous pouvez écrire:
<?= $form->field($model, 'hidden1')->hiddenInput(['value'=>'abc value'])->label(false); ?>
Vous pouvez le faire avec les options
echo $form->field($model, 'hidden1',
['options' => ['value'=> 'your value'] ])->hiddenInput()->label(false);
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,
]);
}
Comme ça:
<?= $form->field($model, 'hidden')->hiddenInput(['class' => 'form-control', 'maxlength' => true,])->label(false) ?>