YII2框架基于yii1.0 完全重写整个框架 :
因此以一个初学小白的身份 , 记录整个学习的过程,希望对自身有一个很好的提高 :
1 . composer安装完成后 , 前后台找不到入口文件的问题 : 一度认为自己安装的有问题 , 结果 : [ 浪费了很多时间 ]
对于一些刚使用Yii2的同学可能刚下载advanced 版 在frontend/web/ 下找不到index.php
解决:
在advanced目录下有个 init.bat 文件
双击运行,会出现一个dos窗口 输入 0(开发模式) 或 1(产品模式)
按回车
再输入 yes 回车
这样就能生成入口文件了.
2 . 控制器输出变量到页面时 , 一定要记得是 return $this->render() ; 必须return
3 . 框架会自送生成验证表单的JS , 公共的common / models / LoginForm 只是为了验证表单和提交的数据 ! 如果js提示为英文 , 请在当前模块配置文件 : 比如backend/config / main.php 中添加 "language"=>"zh-CN" , 然后在LoginForm类中添加
public function attributeLabels(){
return [
'username'=>'用户名',
'password'=>'密码',
'rememberMe'=>'记住密码',
];
}
这样提示就会是中文 , 页面显示相关的也会是中文
4. redis遇到的大坑 :
(1) 首先下载redis扩展文件
(2) 将文件放到yiisoft下并重新命名为yii-redis
(3) 在yiisoft / extensions.php 文件中添加
'yiisoft/yii2-redis' =>
array(
'name'=>'yiisoft/yii2-redis/src',
'version'=>'2.2.0.0',
'alias'=>
array(
'@yii/redis'=>$vendorDir.'/yiisoft/yii2-redis/src',
),
),
这里一定要注意路径问题 , 百度到的配置路径只到yii2-redis 如 $vendorDir.'/yiisoft/yii2-redis' , 测试会出现类不存在的报错 [
] ! 所以必须路径写到src
(4) common / config / main.php key为components下
'redis' => [
'class' => 'yii\redis\Connection',
'hostname'=>'localhost',
'port'=>'端口',
'database'=>1,
],
(5) 正常运行后发现一个问题 , 在框架中写入的键值 , 框架中读写都没问题 , 但是在linux服务器中使用原生的查看不到 , 继续研究 !
(6) reids数据找不到的问题是 database这个参数配置的问题 ! redis默认的库有16个[ 当然这个可以自己设置 如 databases 32] , 值为1,说明把数据写入到base1里面 , select num , 切换redis库
5. 跳转遇到的问题 : 在init() 函数中 , 如果执行 redirect() 动作时 , 一定要加上 Yii::$app() ->end();否则程序是会继续执行的 , 在其他的方法中 , 直接return $this->redirect([ url]) 就可跳转 如 : 当用户没有登录时 , 从任何一个页面访问都会跳转到登录页面 : 这是如果将跳转写在init( ) 动作中 那么 :
Yii::$app->end();
应该这样 ! 如有不足请大家多多指教