如何在视图 Yii 2 中从 Form 获取控制器中的属性值

How to get value of attribute in controller from Form in view Yii 2

我创建了一个名为 (users) 的 table,它有两列:namepass。 在视图中,我创建了这样的表单:

<?php
$form = ActiveForm::begin() ?>

<div class="form-group">
  <?= $form->field($model, 'user') ?>
  <?= $form->field($model, 'password') ?>
    <div class="col-lg-offset-1 col-lg-11">
        <?= Html::submitButton('Login', ['class' => 'btn btn-primary']) ?>
    </div>
</div>
<?php ActiveForm::end() ?>

所以我需要将这两个属性传递给控制器​​以插入数据库。

在您的控制器中,您可以通过以下方式获取 post 表单:

Yii::$app->request->post()

这样您就可以将值加载到您的模型中

$model->load(Yii::$app->request->post())

在这里你可以找到 starting point

在YourController.php
确保您有一个创建操作来管理您在数据库中的插入 以及用于管理用户输入的创建视图(仅显示正确结果的视图)

    <?php

    namespace app\controllers;

    use Yii;
    use yii\web\Controller;
    use app\models\EntryForm;

    class YourController extends Controller
    {
        // ...existing code...

        public function actionCreate()
        {
            $model = new User();

            if ($model->load(Yii::$app->request->post()) && $model->validate()) {
                // valid data received in $model

                // 
                if( $model->save()){
                    return $this->render('create', ['model' => $model]);
                } else {
                    // this is just for debug  
                    var_dump('not inserted');
                    die();
                }

            } else {
                // either the page is initially displayed or there is some validation error
                return $this->render('view', ['model' => $model]);
            }


        // render the initial page per allow to the user input 
        return $this->render('create', ['model' => $model]);
       }  

       ....
   }