热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

yii2高级版本搭建

 一、安装Composer电脑上安装Composer,如果你还没有安装Composer,你可以按照这里的说明进行安装安装完Composer,运行下面的命令来安装Co

 一 、安装Composer

电脑上安装Composer,如果你还没有安装Composer,你可以按照这里的说明进行安装

安装完Composer,运行下面的命令来安装Composer Asset插件:

二、初始化yii2 高级版

1.进入网址 http://www.yiichina.com/,点击下载框架(如下图)

找到 Yii2的高级应用程序模板 点击下载(如下图)

2.下载完成之后解压到你的项目根目录 比如 phpStudy 的 WWW 文件夹下

3.下面初始化项目,电脑上安装好Composer win+R,调出来运行,输入cmd(如下图)

找到你的项目目录,运行 init(如下图)

输入 0 按Enter键 (如下图)

输入 y 按 Enter继续 (如下图)

初始化完成(如下图)

4.配置 vhosts-conf,将红框内的信息替换成你的项目路径,红框上面的ip 可能是127.0.0.1:xx 都是可以的

(如下图)

5.访问你的项目,访问成功,则框架安装成功

三、配置

1.连接数据库配置,打开/environments/dev/common/config/main-local.php修改数据库配置

'db' => [

'class' => 'yii\db\Connection',

'dsn' => 'mysql:host=127.0.0.1;dbname=ashu',

'username' => 'root',

'password' => 'root',

'charset' => 'utf8',

'tablePrefix' => 'dp_',

],

注:username 和 password 填入对应数据库账号密码

执行init,输入 0 (开发模式) Enter 继续(如下图)

输入 y Enter 继续(如下图)

输入 a Enter继续(如下图)

初始化成功(如下图)

2.创建user表(因为我喜欢加前缀所以在初始化数据库连接配置和建表的时候都有 dp_)

CREATE TABLE `dp_user` (

`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增ID',

`username` varchar(255) NOT NULL COMMENT '用户名',

`auth_key` varchar(32) NOT NULL COMMENT '自动登录key',

`password_hash` varchar(255) NOT NULL COMMENT '加密密码',

`password_reset_token` varchar(255) DEFAULT NULL COMMENT '重置密码token',

`email` varchar(255) NOT NULL COMMENT '邮箱',

`role` smallint(6) NOT NULL DEFAULT '10' COMMENT '角色等级',

`status` smallint(6) NOT NULL DEFAULT '10' COMMENT '状态',

`created_at` int(11) NOT NULL COMMENT '创建时间',

`updated_at` int(11) NOT NULL COMMENT '更新时间',

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='用户表';

现在数据库配置基本已经完成

访问你的项目点击注册

如果注册登陆成功这里会显示你的用户名(如下图)

2.配置语言包

语言包的配置可以根据开发需求,前台(frontend)和后台(backend)分开配置

第一步:

创建目录(frontend为例),如下图在/frontend/messages/zh-CN(这里的“CN”最好大写,Windows无影响,linux区分大小写),创建两个语言包文件 common.php和power.php

第二步:添加语言包配置/frontend/config/main.php,添加language和i18n配置。

return [

'language'=>'zh-CN',//这个配置别漏了,选择中文语言包

...

'components' => [

...

'i18n' => [

'translations' => [

'common' => [

'class' => 'yii\i18n\PhpMessageSource',

//'basePath' => '/messages',

'fileMap' => [

'common' => 'common.php',

],

],

'power' => [

'class' => 'yii\i18n\PhpMessageSource',

//'basePath' => '/messages',

'fileMap' => [

'power' => 'power.php',

],

],

],

],

],

...

];

在common.php中添加数据,格式如下

return[

'Yii China' => '我的网站',

];

输出:在/frontend/views/layouts/main.php 把网站名My Company改成Yii::t('common','Yii China');

打开首页查看效果

3.Url优化

以首页链接为例:http://192.168.163.100:83/index.php?r=site%2Findex

打开/frontend/config/main.php中的components下面添加以下代码

'urlManager' => [

'enablePrettyUrl' => true,

'showScriptName' => false,

'rules' => [

],

],

在/frontend/web下面添加.htaccess文件

如需在尾部跟上.html(伪静态)只需要在urlManager中添加 'suffix' => '.html'

'urlManager' => [

'enablePrettyUrl' => true,

'showScriptName' => false,

'suffix' => '.html',

'rules' => [

],

],

这样首页链接就变成 http://192.168.163.100:83/site/index.html

注:后台Url优化过程同上,如果在/common/config/main.php中配置,前后台就不必单独配置,根据需求各自选择。

4.静态资源配置

以搭建frontend的静态资源为例,backend同样配置即可。

首先在/frontend/web中创建common文件夹作为frontend的前端资源文件

如果是高级版(yii2.0.6-advanced)在/frontend/web下会有一个css文件,将文件中的所有css文件放入我们之前创建好的/common/css

打开/frontend/assets/AppAsset.php

修改其中css/site.css更改为common/css/site.css(js依此类推),为了举例说明我们分别再加一个test.js文件和test.css

然后看下如何将AppAsset中注册的css在views层加载,打开/frontend/views/layouts/main.php

如图所示即为静态资源注册,渲染到页面上,访问首页,然后查看源代码

5.添加重复密码和验证码

打开/frontend/models/SignupForm.php

class SignupForm extends Model

{

public $username;

public $email;

public $password;

 

/**

* @inheritdoc

*/

public function rules()

{

return [

['username', 'filter', 'filter' => 'trim'],

['username', 'required'],

['username', 'unique', 'targetClass' => '\common\models\User', 'message' => 'This username has already been taken.'],

['username', 'string', 'min' => 2, 'max' => 255],

 

['email', 'filter', 'filter' => 'trim'],

['email', 'required'],

['email', 'email'],

['email', 'string', 'max' => 255],

['email', 'unique', 'targetClass' => '\common\models\User', 'message' => 'This email address has already been taken.'],

 

['password', 'required'],

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

];

}

}

添加用户字符限制,6-16位

['username', 'string', 'min' => 6, 'max' => 16],

输入限制:用户名由字母,汉字,数字,下划线组成,且不能以数字和下划线开头。

['username', 'match','pattern'=>'/^[(\x{4E00}-\x{9FA5})a-zA-Z]+[(\x{4E00}-\x{9FA5})a-zA-Z_\d]*$/u','message'=>'用户名由字母,汉字,数字,下划线组成,且不能以数字和下划线开头。'],

添加重复密码字段

public $repassword;

一般重复密码与密码的字段验证基本上是一致的,所以可以在password中添加repassword,并添加两次输入一致的限制

[['password','repassword'], 'required'],

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

['repassword', 'compare', 'compareAttribute' => 'password','message'=>'两次输入的密码不一致!'],

添加验证码字段

public $verifyCode;

验证码有自带的扩展,只需添加以下代码即可

['verifyCode', 'captcha'],

修改之后的规则

public function rules()

{

return [

['username', 'filter', 'filter' => 'trim'],

['username', 'required'],

['username', 'unique', 'targetClass' => '\common\models\User', 'message' => '该用户名已被使用!'],

['username', 'string', 'min' => 6, 'max' => 16],

['username', 'match','pattern'=>'/^[(\x{4E00}-\x{9FA5})a-zA-Z]+[(\x{4E00}-\x{9FA5})a-zA-Z_\d]*$/u','message'=>'用户名由字母,汉字,数字,下划线组成,且不能以数字和下划线开头。'],

 

['email', 'trim'],

['email', 'required'],

['email', 'email'],

['email', 'string', 'max' => 255],

['email', 'unique', 'targetClass' => '\common\models\User', 'message' => 'This email address has already been taken.'],

 

['password', 'required'],

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

 

[['password','repassword'], 'required'],

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

['repassword', 'compare', 'compareAttribute' => 'password','message'=>'两次输入的密码不一致!'],

 

['verifyCode', 'captcha'],

];

}

 

重复密码验证view视图

在signup.php中添加

field($model, 'repassword')->passwordInput() ?>

验证码

注意:需要在对应的控制器中添加以下代码,本例为SiteController中添加

public function actions()

{

return [

...

'captcha' => [

'class' => 'yii\captcha\CaptchaAction',

'height' => 50,

'width' => 80,

'minLength' => 4,

'maxLength' => 4,

'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,

],

];

}

signup中添加如下代码

field($model,'verifyCode')->widget(yii\captcha\Captcha::className()

,['captchaAction'=>'site/captcha',

'imageOptions'=>['alt'=>'点击换图','title'=>'点击换图', 'style'=>'cursor:pointer']]);?>

看看效果如何

 


版权声明:本文为weixin_43310339原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_43310339/article/details/97274259
推荐阅读
  • 本文主要复习了数据库的一些知识点,包括环境变量设置、表之间的引用关系等。同时介绍了一些常用的数据库命令及其使用方法,如创建数据库、查看已存在的数据库、切换数据库、创建表等操作。通过本文的学习,可以加深对数据库的理解和应用能力。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
  • 猜字母游戏
    猜字母游戏猜字母游戏——设计数据结构猜字母游戏——设计程序结构猜字母游戏——实现字母生成方法猜字母游戏——实现字母检测方法猜字母游戏——实现主方法1猜字母游戏——设计数据结构1.1 ... [详细]
  • MySQL语句大全:创建、授权、查询、修改等【MySQL】的使用方法详解
    本文详细介绍了MySQL语句的使用方法,包括创建用户、授权、查询、修改等操作。通过连接MySQL数据库,可以使用命令创建用户,并指定该用户在哪个主机上可以登录。同时,还可以设置用户的登录密码。通过本文,您可以全面了解MySQL语句的使用方法。 ... [详细]
  • 本文介绍了一种轻巧方便的工具——集算器,通过使用集算器可以将文本日志变成结构化数据,然后可以使用SQL式查询。集算器利用集算语言的优点,将日志内容结构化为数据表结构,SPL支持直接对结构化的文件进行SQL查询,不再需要安装配置第三方数据库软件。本文还详细介绍了具体的实施过程。 ... [详细]
  • 本文介绍了在Windows系统下安装Python、setuptools、pip和virtualenv的步骤,以及安装过程中需要注意的事项。详细介绍了Python2.7.4和Python3.3.2的安装路径,以及如何使用easy_install安装setuptools。同时提醒用户在安装完setuptools后,需要继续安装pip,并注意不要将Python的目录添加到系统的环境变量中。最后,还介绍了通过下载ez_setup.py来安装setuptools的方法。 ... [详细]
  • DSP中cmd文件的命令文件组成及其作用
    本文介绍了DSP中cmd文件的命令文件的组成和作用,包括链接器配置文件的存放链接器配置信息、命令文件的组成、MEMORY和SECTIONS两个伪指令的使用、CMD分配ROM和RAM空间的目的以及MEMORY指定芯片的ROM和RAM大小和划分区间的方法。同时强调了根据不同芯片进行修改的必要性,以适应不同芯片的存储用户程序的需求。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • 使用C++编写程序实现增加或删除桌面的右键列表项
    本文介绍了使用C++编写程序实现增加或删除桌面的右键列表项的方法。首先通过操作注册表来实现增加或删除右键列表项的目的,然后使用管理注册表的函数来编写程序。文章详细介绍了使用的五种函数:RegCreateKey、RegSetValueEx、RegOpenKeyEx、RegDeleteKey和RegCloseKey,并给出了增加一项的函数写法。通过本文的方法,可以方便地自定义桌面的右键列表项。 ... [详细]
author-avatar
0523wei
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有