yii2basic用法之:2、登录

本文详细介绍使用Yii2框架创建数据库、配置模型及实现用户登录的全过程,包括数据库搭建、模型定制与登录功能测试。

 

我这个是参考网上的做的,已经成功了,这里贴出来做个记录

参考地址:http://www.yiichina.com/tutorial/332

1、创建数据库 eg:storage

2、将参考例子中的user表的结构复制到SQL中生成user表



 

CREATE TABLE IF NOT EXISTS `user` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL,
`password` varchar(32) NOT NULL,
`authKey` varchar(100) NOT NULL DEFAULT '',
`accessToken` varchar(100) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

3、将项目文件里的数据库的配置文件(config文件夹里的db.php)的数据库名称改成自己建的数据库即rstorage

yii2basic用法之:2、登录 - queen - 安然

 

 4、通过yii2的gii模块生成需要的模型和CURD操作

      1)创建User.php模型

yii2basic用法之:2、登录 - queen - 安然

 

yii2basic用法之:2、登录 - queen - 安然

 

2)将生成的User.php文件修改如下:

yii2basic用法之:2、登录 - queen - 安然

 

   3)将登录内容添加上后最终的User.php文件如下



 

<?php

namespace app\models;

use Yii;

/**
* This is the model class for table "user".
*
* @property string $id
* @property string $username
* @property string $password
* @property string $authKey
* @property string $accessToken
*/
class User extends \yii\db\ActiveRecord implements \yii\web\IdentityInterface
{
/**
* @inheritdoc
*/
public static function tableName()
{
return 'user';
}

/**
* @inheritdoc
*/
public function rules()
{
return [
[['username', 'password'], 'required'],
[['username'], 'string', 'max' => 50],
[['password'], 'string', 'max' => 32],
[['authKey', 'accessToken'], 'string', 'max' => 100]
];
}

/**
* @inheritdoc
*/
public function attributeLabels()
{
return [
'id' => Yii::t('app', 'ID'),
'username' => Yii::t('app', 'Username'),
'password' => Yii::t('app', 'Password'),
'authKey' => Yii::t('app', 'Auth Key'),
'accessToken' => Yii::t('app', 'Access Token'),
];
}

/**
* @inheritdoc
*/
public static function findIdentity($id)
{
return User::findOne($id);
}

/**
* @inheritdoc
*/
public static function findIdentityByAccessToken($token, $type = null)
{
return User::findOne(['access_token' => $token]);
}

/**
* Finds user by username
*
* @param string $username
* @return static|null
*/
public static function findByUsername($username)
{
$user = User::find()
->where(['username' => $username])
->asArray()
->one();

if($user){
return new static($user);
}
return null;
}

/**
* @inheritdoc
*/
public function getId()
{
return $this->id;
}

/**
* @inheritdoc
*/
public function getAuthKey()
{
return $this->authKey;
}

/**
* @inheritdoc
*/
public function validateAuthKey($authKey)
{
return $this->authKey === $authKey;
}

/**
* Validates password
*
* @param string $password password to validate
* @return boolean if password provided is valid for current user
*/
public function validatePassword($password)
{
return $this->password === $password;
}
}

         4)测试登录

         点击login

yii2basic用法之:2、登录 - queen - 安然

        输入账号密码(根据数据库里user表里的记录)eg:admin,123

yii2basic用法之:2、登录 - queen - 安然

        登录成功后显示

yii2basic用法之:2、登录 - queen - 安然

点击logout即可退出

 

 

 

到此,登录就完成了,对于user.php文件中的修改我也没有深究修改成现在模型的原因,不过大概意思就是将原来的登录形式改成传统的根据数据库里的帐号密码进行登录即可。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值