web-dev-qa-db-ja.com

yii2隠された入力値

Yii2では、非表示の入力を作成しようとしています

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

しかし、値のオプションも必要です。どうすればよいですか?

35
David

ここで値を変更しても、アクティブなフィールドなので意味をなしません。これは、値がモデル値と同期されることを意味します。

$model->hidden1の値を変更するだけで変更できます。または、フォームの送信後にユーザーからデータを受信した後に変更されます。

非アクティブな非表示入力を使用すると、次のようになります。

use yii\helpers\Html;

...

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

ただし、後者はモデル外での使用により適しています。

33
arogachev

以下を使用してください。

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

簡単に書くことができます:

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

あなたはオプションでそれを行うことができます

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

これもできます

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

このような:

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