谁一开始就是大神?

在注册中怎么写?密码框报错[2.0]

我想在高级版中后台修改添加用户。
代码如下:
index.php


<?php
use yii\helpers\Html;
use yii\bootstrap\ActiveForm;
?>
<div class="site">
	<h1>新增用户</h1>
	<?php $form = ActiveForm::begin([
		'id' => 'add-user',
		'options' => ['class' => 'form-horizontal'],
        'fieldConfig' => [
            'template' => "{label}\n<div class=\"col-lg-3\">{input}</div>\n<div class=\"col-lg-8\">{error}</div>",
            'labelOptions' => ['class' => 'col-lg-1 control-label'],
        ],
	]);?>
	<?= $form->field($model,'username')?>
	<!--报错-->
	<?= $form->field($model, 'password')->passwordInput() ?>
	
	<?= $form->field($model,'email')?>
	<div class="form-group">
        <div class="col-lg-offset-1 col-lg-11">
            <?= Html::submitButton('Login', ['class' => 'btn btn-primary', 'name' => 'login-button']) ?>
        </div>
    </div>
	<?php $form = ActiveForm::end()?>
</div>

user控制器


<?php
// 命名空间
namespace backend\controllers;
// yii主体
use yii;
// 控制器
use yii\web\Controller;
// 模块
use common\models\User;
// 权限验证
use yii\filters\AccessControl;

class UserController extends Controller
{
	
    /**
     * @权限验证
     */
    public function behaviors()
    {
        return [
        	// 验证规则
            'access' => [
                'class' => AccessControl::className(),
                'rules' => [
                    [
                        'actions' => ['login', 'error'],
                        'allow' => true,
                    ],
                    [
                     'actions' => ['logout', 'index','user'],
                        'allow' => true,
                        'roles' => ['@'],
                    ],
                ],
            ],
        ];
    }
	
	public function actionIndex()
	{
		$model = new User();
		return $this->render('index',['model'=>$model]);
	}
}

模块是gii生成的,添加了属性名


	public function attributeLabels()
    {
        return[
            'username'=>'用户名',
            'password'=>'密码',
            'email'=>'邮箱',
        ];
    }

现在的问题就是,密码框添加就直接报错


Invalid Call – yii\base\InvalidCallException
Getting write-only property: common\models\User::password

YII2菜鸟求解,坐等。还有就是注册提交的密码需要怎么处理

模板的User表中没有password字段,是在User模型中使用setter方法setPassword,所以password是只写的。要怎么解决,你直接参照高级模板的注册方案吧,它用了SignupForm模型做数据中转。
问题解决没,我也遇到了这个问题,不知道怎么解决…

赞(0) 打赏
未经允许不得转载:菜鸟之家 » 在注册中怎么写?密码框报错[2.0]

评论 抢沙发

登录

找回密码

注册