2015-08-26 12:19:13 3286次浏览 1条回答 0 悬赏 10 金钱

1、controller代码

 public function actionSignup()
    {
        $model = new SignupForm();
        if ($model->load(Yii::$app->request->post())) {
            if ($user = $model->signup()) {
                if (Yii::$app->getUser()->login($user)) {
                    return $this->goHome();
                }
            }
        }

        return $this->render('signup', [
            'model' => $model,
        ]);
    }

2、model

class SignupForm extends Model
{
    public $username;
    public $email;
    public $password;
    public $phone;
    public $xingming;
    public $sex;
    public $xingbie;

    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            ['username', 'filter', 'filter' => 'trim'],
            ['username', 'required'],
            ['username', 'unique', 'targetClass' => '\common\models\User', 'message' => '此用户名已被占用。'],
            ['username', 'string', 'min' => 2, 'max' => 255],

            ['email', 'filter', 'filter' => 'trim'],
            ['email', 'required'],
            ['email', 'email'],
            ['email', 'unique', 'targetClass' => '\common\models\User', 'message' => '此邮件地址已经使用。'],

            ['password', 'required'],
            ['password', 'string', 'min' => 6],

            ['phone','filter','filter' => 'trim'],
            ['phone','required'],
            ['phone', 'unique', 'targetClass' => '\common\models\User', 'message' => '手机号已经注册。'],
            ['phone','string','min'=>11,'max'=>11],

            ['xingming','filter','filter' => 'trim'],
            ['xingming','required'],

            ['sex','filter','filter' => 'trim'],
            ['sex','required'],

//            ['xingbie','filter','filter' => 'trim'],
            ['xingbie','required'],
        ];
    }

    /**
     * Signs user up.
     *
     * @return User|null the saved model or null if saving fails
     */
    public function signup()
    {
        if ($this->validate()) {
            $user = new User();
            $user->username = $this->username;
            $user->email = $this->email;
            $user->phone = $this->phone;
            $user->xingming = $this->xingming;
            $user->sex = $this->sex;
            $user->xingbie = $this->xingbie;
            $user->setPassword($this->password);
            $user->generateAuthKey();
            if ($user->save()) {
                return $user;
            }
        }

        return null;
    }
    public function attributeLabels()
    {
        return [
            'username' => '用户名',
            'email' => '邮箱',
            'sex' => '性别',
            'phone' => '手机',
            'password' => '密码',
            'xingming' => '姓名',
            'xingbie' => '平时喜爱的项目',
        ];
    }
}

3、view

<div class="site-signup">
    <h1><?= Html::encode($this->title) ?></h1>

    <p>注册请填写:</p>

    <div class="row">
        <div class="col-lg-5">
            <?php $form = ActiveForm::begin(['id' => 'form-signup']); ?>
                <?= $form->field($model, 'username') ?>
                <?= $form->field($model, 'email') ?>
                <?= $form->field($model, 'password')->passwordInput() ?>
                <?= $form->field($model,'phone') ?>
                <?= $form->field($model,'xingming') ?>
                <?= $form->field($model,'sex')->radioList(['1'=>'男','0'=>'女']) ?>


                <?= $form->field($model,'xingbie')->checkboxList(['0'=>'篮球','1'=>'足球','2'=>'羽毛球','3'=>'乒乓球']) ?>


<!--                --><?//= var_dump('checkboxList') ?>
            <div class="form-group">
                    <?= Html::submitButton('Signup', ['class' => 'btn btn-primary', 'name' => 'signup-button']) ?>
                </div>
            <?php ActiveForm::end(); ?>
        </div>
    </div>
</div>

别的存到数据库都没有问题 唯独checkboxlist这里不正确,多选的话存的不正确

您需要登录后才可以回答。登录 | 立即注册
根子isme
职场新人

根子isme

注册时间:2015-08-12
最后登录:2018-05-28
在线时长:2小时7分
  • 粉丝1
  • 金钱75
  • 威望0
  • 积分95

热门问题