YII2-USER需要PHP7,否则会提示类似以下截图的错误:
使用WampServer安装好PHP7后,将系统环境变量Path中的php目录更改到PHP7,这是必须的步骤(我安装的是PHP7.2.5),要不安装YII2-USER时还会提示需要PHP7。如果你也使用WampServer,并且对WampServer支持多版本PHP有困难,可以查看我的另一篇博客:
WampServer支持多版本PHP配置
https://blog.csdn.net/waterlily_5/article/details/80375816
之后安装YII2的advanced框架,如果对安装YII2.0高级版程序有疑惑,也可以参照我的另一篇博客:
YII2.0使用归档文件安装advanced高级版
https://blog.csdn.net/waterlily_5/article/details/80330548
使用YII2-USER需要进行邮箱配置,参考
YII2.0使用阿里云邮件推送实现邮件发送
https://blog.csdn.net/waterlily_5/article/details/80316194然后是创建数据库,我使用了默认的数据库名称yii2advanced,整理编码为utf8-unicode_ci。
然后是安装YII2-USER,安装YII2-USER使用composer进行安装。
首先需要使用cd命令将目录设置到网站目录
然后运行
composer require "dektrium/yii2-user:0.9.*@dev"
安装YII2-USER,命令运行之后大概是这样的:
安装YII2-USER完成之后配置前台frontend/config/main.php文件,在return中添加:
'modules' => [
'user' => [
'class' => 'dektrium\user\Module',
],
],
添加完成之后大概是这个样子:
然后修改frontend/views/layouts/main.php中的登录注册为yii2-user,修改的是注册登录注销的入口,修改之后是这样的
if (Yii::$app->user->isGuest) {
$menuItems[] = ['label' => 'Signup', 'url' => ['/user/registration/register']];
$menuItems[] = ['label' => 'Login', 'url' => ['/user/security/login']];
} else {
$menuItems[] = '<li>'
. Html::beginForm(['/user/security/logout'], 'post')
. Html::submitButton(
'Logout (' . Yii::$app->user->identity->username . ')',
['class' => 'btn btn-link logout']
)
. Html::endForm()
. '</li>';
}
然后使用migrate实现数据迁移,我的数据库这时是空的,migrate会创建相应的表
yii migrate/up --migrationPath=@vendor/dektrium/yii2-user/migrations
运行时要求确认,输入yes
我运行之后是这个样子的
这时点击注册就可以看到这样的界面了
点击SignUp就可以注册用户了,提交之后大概是这样的
到邮箱中可以看到邮件
然后点击链接,会提示注册已经成功