现在前台的导航和注册如下图,常规的导航应该是在左边(我的博客右边一点),注册里面应该有一个重复密码以及验证码。本文的主要内容就是解决这两个问题。

1、导航栏调整,将菜单栏移到左边,修改位置:frontend/views/layouts/mian.php修改如下:

上图是修改前的代码截图,下图是修改后的代码截图,修改的地方已用红色框框标注

导航栏修改后的效果图。

2、添加登录头像
同时,还有一个地方需要修改,通常登录后会显示登录头像,而这只有用户名,所以再次修改,修改的文件,frontend/views/layouts/mian.php,修改前的代码截图:

修改后的代码截图:

效果图:

3、添加font-awesome字体样式
将在font-awesome官网下载的样式包放入frontend/web/statics 静态资源文件夹内,statics是我新建的用来存放js、css、images等静态资源的文件夹。
然后引入font-awesome字体样式包,引入方法如下:
在frontend/assets/AppAsset.php 中加入下图右侧红色框框标注的内容 截图中有一处与你的文件可能不一样,statics/css/site.css ,这是因为我把web下的css文件夹移入了statics文件夹内,主要是为了方便静态资源统一管理。

引入font-awesome字体样式后就可以直接使用了,使用方法如下:(修改的文件,frontend/views/layouts/mian.php)

效果图:

4、前台注册信息完善
前台注册表单SignupFormp表单增加重复密码校验和验证码,右侧红色框框内容为新增规则:
#rules 方法的完整内容
public function rules()
{
return [
['username', 'trim'],
['username', 'required'],
['username', 'unique', 'targetClass' => 'commonmodelsUserModel', 'message' => Yii::t('common', 'This username has already been taken.')],
['username', 'string', 'min' => 2, 'max' => 255],
['email', 'trim'],
['email', 'required'],
['email', 'email'],
['email', 'string', 'max' => 255],
['email', 'unique', 'targetClass' => 'commonmodelsUserModel', 'message' => Yii::t('common', 'This email address has already been taken.')],
['password', 'required'],
['password', 'string', 'min' => 6],
[['password','rePassword'], 'required'],
[['password','rePassword'], 'string', 'min' => 6],
['verifyCode','captcha'],
['rePassword','compare','compareAttribute'=>'password','message'=>Yii::t('common','Two times input password is not consistent')]
];
}
此外,注册表单类中还要新增两个属性,重复密码和验证码

接下来还要修改前台表单显示文件(frontend/views/site/signup.php 右侧红色框框能的内容都是需要添加的,右上方引入的是验证码组件):

修改后的注册效果图:

#附 注册字段英文变中文:
#修改文件 frontend/models/SignupFrom.php 添加 attributeLabels 方法,该方法会自动将表单字段映射成你希望表达的意思,只对该表单有效
//语言包映射
public function attributeLabels()
{
return [
'username' => Yii::t('common','username'),
'email' => Yii::t('common','email'),
'password' => Yii::t('common','password'),
'rePassword' => Yii::t('common','rePassword'),
'verifyCode' => Yii::t('common','verifyCode'),
'Signup' => Yii::t('common','Signup'),
];
}前台导航结构和注册信息完善到这里就完成了,看十遍不如动手做一遍,赶紧动手试试吧。
