Yii2では、非表示の入力を作成しようとしています
echo $form->field($model, 'hidden1')->hiddenInput()->label(false);
しかし、値のオプションも必要です。どうすればよいですか?
ここで値を変更しても、アクティブなフィールドなので意味をなしません。これは、値がモデル値と同期されることを意味します。
$model->hidden1
の値を変更するだけで変更できます。または、フォームの送信後にユーザーからデータを受信した後に変更されます。
非アクティブな非表示入力を使用すると、次のようになります。
use yii\helpers\Html;
...
echo Html::hiddenInput('name', $value);
ただし、後者はモデル外での使用により適しています。
以下を使用してください。
echo $form->field($model, 'hidden1')->hiddenInput(['value'=> $value])->label(false);
簡単に書くことができます:
<?= $form->field($model, 'hidden1')->hiddenInput(['value'=>'abc value'])->label(false); ?>
あなたはオプションでそれを行うことができます
echo $form->field($model, 'hidden1',
['options' => ['value'=> 'your value'] ])->hiddenInput()->label(false);
これもできます
$model->hidden1 = 'your value';// better put it on controller
$form->field($model, 'hidden1')->hiddenInput()->label(false);
コントローラに値を設定する場合、これはより良いオプションです
$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,
]);
}
このような:
<?= $form->field($model, 'hidden')->hiddenInput(['class' => 'form-control', 'maxlength' => true,])->label(false) ?>