2015-07-30 11:49:57 4795次浏览 2条回答 0 悬赏 20 金钱

我想在高级版中后台修改添加用户。
代码如下:
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菜鸟求解,坐等。还有就是注册提交的密码需要怎么处理

最佳答案

  • 性感的农民 发布于 2015-07-30 12:11 举报

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

    1 条回复
    回复于 2015-11-27 14:46 回复

    您好,请问怎么做啊

    觉得很赞
  • 回答于 2015-09-07 20:56 举报

    问题解决没,我也遇到了这个问题,不知道怎么解决...

    1 条回复
    回复于 2015-11-27 14:46 回复

    请问您是怎么解决问题的啊

您需要登录后才可以回答。登录 | 立即注册
我是兴高采烈
经理

我是兴高采烈 湖北武汉

注册时间:2015-06-26
最后登录:2015-10-08
在线时长:11小时57分
  • 粉丝5
  • 金钱1049
  • 威望0
  • 积分1159

热门问题