如何在视图 Yii 2 中从 Form 获取控制器中的属性值
How to get value of attribute in controller from Form in view Yii 2
我创建了一个名为 (users) 的 table,它有两列:name
和 pass
。
在视图中,我创建了这样的表单:
<?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]);
}
....
}
我创建了一个名为 (users) 的 table,它有两列:name
和 pass
。
在视图中,我创建了这样的表单:
<?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]);
}
....
}