yii2隐藏的输入值

Dav*_*vid 37 hidden-field yii2

在Yii2中,我试图构建隐藏的输入

echo   $form->field($model, 'hidden1')->hiddenInput()->label(false);
Run Code Online (Sandbox Code Playgroud)

但我也需要它有一些价值选择,我该怎么做?

小智 52

使用以下内容:

echo $form->field($model, 'hidden1')->hiddenInput(['value'=> $value])->label(false);
Run Code Online (Sandbox Code Playgroud)


aro*_*hev 35

在这里更改值没有意义,因为它是活动字段.这意味着值将与模型值同步.

只需更改值$model->hidden1即可更改它.或者在提交表格后收到用户的数据后会更改.

使用非活动隐藏输入时,它将是这样的:

use yii\helpers\Html;

...

echo Html::hiddenInput('name', $value);
Run Code Online (Sandbox Code Playgroud)

但后者更适合在模型之外使用.

  • 使用这个 - > Html :: activeHiddenInput($ model,'memid',['value'=> Yii :: $ app-> user-> identity-> id]); (4认同)

小智 18

你可以写简单:

<?= $form->field($model, 'hidden1')->hiddenInput(['value'=>'abc value'])->label(false); ?>
Run Code Online (Sandbox Code Playgroud)


sca*_*dge 12

你可以使用这些选项

echo   $form->field($model, 'hidden1', 
      ['options' => ['value'=> 'your value'] ])->hiddenInput()->label(false);
Run Code Online (Sandbox Code Playgroud)


Ary*_*owo 9

你也可以这样做

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

如果在控制器上设置值,这是一个更好的选项

$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,
    ]);
 }
Run Code Online (Sandbox Code Playgroud)