您需要通过表单向其中添加新记录。表格本身:
<?php $model = new RegistrationForm(); ?>
<?php $form = ActiveForm::begin([
'action' => '?r=site/save',
'method' => 'post',
]); ?>
<?= $form->field($model, 'name') ?>
<?= $form->field($model, 'surname') ?>
<?= $form->field($model, 'position') ?>
<?= $form->field($model, 'login') ?>
<?= $form->field($model, 'password')->passwordInput() ?>
<?= Html::submitButton('Закончить регистрацию', ['id' => 'send']);?>
<?php ActiveForm::end()?>
我要添加的控制器:
public function actionSave()
{
$model = new RegistrationForm();
if ($model->load(Yii::$app->request->post())) {
$model->name = $_POST["RegistrationForm"]["name"];
$model->surname = $_POST["RegistrationForm"]["surname"];
$model->position = $_POST["RegistrationForm"]["position"];
$model->login = $_POST["RegistrationForm"]["login"];
$model->password = $_POST["RegistrationForm"]["password"];
$model->save();
} else {
echo "Ошибка";
}
}
模型:
class RegistrationForm extends ActiveRecord
{
public $name;
public $surname;
public $position;
public $login;
public $password;
public function rules(){
return [
[['name', 'surname', 'position', 'login','password'], 'required'],
[ ['password'],'string','min'=>6],
];
}
public static function tableName(){
return "user";
}
}
填写字段并按下按钮时,表格将填充空白字段。同时,如果通过var_dump查看$model,可以看到模型中填充了输入的数据。我不知道为什么会保存空字段。提示选项
从模型中删除行
你会很开心
下午好。从actionSave()操作中删除以下行。
它们显然是多余的。不要在视图中实例化模型,在控制器中进行。移除$model = new RegistrationForm();从视图中。并重写控制器中的操作,如下所示。对于redirect,替换为所需的路径,对于render ,替换为所需的视图文件。
如果你需要从 POST 数组中获取数据,那么 yii2 有一个内置方法。
因为你正在这样做,所以这是错误的。