1.通过composer 安装高级版

C:wampwwwyii>composer create-project --prefer-dist yiisoft/yii2-app-advanced advanced

2. 进入 advanced 目录中 执行 init 初始化

[php] view plain copy    
  1. C:wampwwwyii>cd advanced
  2. C:wampwwwyiiadvanced>init
  3. Yii Application Initialization Tool v1.0
  4. Which environment do you want the application to be initialized in?
  5. [0] Development
  6. [1] Production
  7. Your choice [0-1, or “q” to quit] 0
  8. Initialize the application under ‘Development’ environment? [yes|no] y
  9. Start initialization …
  10. generate backend/config/main-local.php
  11. generate backend/config/params-local.php
  12. generate backend/web/index-test.php
  13. generate backend/web/index.php
  14. generate common/config/main-local.php
  15. generate common/config/params-local.php
  16. generate console/config/main-local.php
  17. generate console/config/params-local.php
  18. generate frontend/config/main-local.php
  19. generate frontend/config/params-local.php
  20. generate frontend/web/index-test.php
  21. generate frontend/web/index.php
  22. generate yii
  23. generate cookie validation key in backend/config/main-local.php
  24. generate cookie validation key in frontend/config/main-local.php
  25. chmod 0777 backend/runtime
  26. chmod 0777 backend/web/assets
  27. chmod 0777 frontend/runtime
  28. chmod 0777 frontend/web/assets
  29. chmod 0755 yii
  30. … initialization completed.

windows环境下直接运行根目录下的init.bat命令。

3.到此为止我们配置好了 数据库联系信息 以及数据库,但是我们还没有表,我们使用 yii migrate 命令

[php] view plain copy    
  1. C:wampwwwyiiadvanced>yii migrate
  2. Yii Migration Tool (based on Yii v2.0.0)
  3. Creating migration history table “migration”…done.
  4. Total 1 new migration to be applied:
  5. m130524_201442_init
  6. Apply the above migration? (yes|no) [no]:y
  7. *** applying m130524_201442_init
  8. > create table {{%user}} … done (time: 0.031s)
  9. *** applied m130524_201442_init (time: 0.055s)
  10. Migrated up successfully.

在windows下打卡cmd命令窗口,切换到Yii项目所在目录(包含Yii.bat),就可以在cmd中运行Yii命令了。

使用Yii migrate命令执行sql语句:

也可以在输入./yii查看有哪些命令可用。

直接运行yii migrate会自动找到console/migrations下的*_init.PHP。

4.RBAC权限

以下代码展示使用 yii\rbac\DbManager 时如何在应用配置文件中配置 authManager

return [// ...'components' => ['authManager' => ['class' => 'yii\rbac\DbManager',],// ...],
];

DbManager 使用4个数据库表存放它的数据:

  • yii\rbac\DbManager::$itemTable: 该表存放授权条目(译者注:即角色和权限)。默认表名为 "auth_item" 。
  • yii\rbac\DbManager::$itemChildTable: 该表存放授权条目的层次关系。默认表名为 "auth_item_child"。
  • yii\rbac\DbManager::$assignmentTable: 该表存放授权条目对用户的指派情况。默认表名为 "auth_assignment"。
  • yii\rbac\DbManager::$ruleTable: 该表存放规则。默认表名为 "auth_rule"。

继续之前,你需要在数据库中创建这些表。你可以使用存放在 @yii/rbac/migrations 目录中的数据库迁移文件来做这件事(译者注:根据本人经验,最好是将授权数据初始化命令也写到这个 RBAC 数据库迁移文件中):

yii migrate --migrationPath=@yii/rbac/migrations

现在可以通过 \Yii::$app->authManager 访问 authManager 。

5.

如果你的权限层次结构不会发生改变,而且你的用户数是恒定的,你可以通过 authManager 提供的 API 创建一个 控制台命令 一次性初始化授权数据:

<?php
namespace app\commands;use Yii;
use yii\console\Controller;class RbacController extends Controller
{public function actionInit(){$auth = Yii::$app->authManager;// 添加 "createPost" 权限$createPost = $auth->createPermission('createPost');$createPost->description = 'Create a post';$auth->add($createPost);// 添加 "updatePost" 权限$updatePost = $auth->createPermission('updatePost');$updatePost->description = 'Update post';$auth->add($updatePost);// 添加 "author" 角色并赋予 "createPost" 权限$author = $auth->createRole('author');$auth->add($author);$auth->addChild($author, $createPost);// 添加 "admin" 角色并赋予 "updatePost" // 和 "author" 权限$admin = $auth->createRole('admin');$auth->add($admin);$auth->addChild($admin, $updatePost);$auth->addChild($admin, $author);// 为用户指派角色。其中 1 和 2 是由 IdentityInterface::getId() 返回的id (译者注:user表的id)// 通常在你的 User 模型中实现这个函数。$auth->assign($author, 2);$auth->assign($admin, 1);}
}

在用 yii rbac/init 执行了这个命令后,我们将得到下图所示的层次结构:

6.RbacController.php放在basic模板里面的commands文件夹下,放在advanced的console/controllers文件夹下,注意命名空间。

yii2高级模板安装和yii migrate的使用相关推荐

  1. yii2高级模板开源商城系统实例、示例、DEMO,yii2框架学习开发必备

    Yii 是一个高性能的,适用于开发WEB2.0应用的PHP框架,快速.安全.专业的PHP框架. Yii 自带了丰富的功能,包括 MVC,DAO/ActiveRecord,I18N/L10N,缓存,身份 ...

  2. php 前端模板 yii,php – Yii2高级模板:添加独立网页

    我在backend / views / site下添加了help.php,并在SiteController.php下声明了一个能够识别链接的函数 public function behaviors() ...

  3. yii2高级模板使用一个域名管理前后台

    1.修改 advanced/backend/config/main.PHP 文件如下: return ['homeUrl' => '/admin','components' => ['re ...

  4. yii2高级模板使用一个域名管理前后台(url重写)

    前台使用 advanced.com访问,后台使用 advanced.com/admin访问 1.修改 advanced/backend/config/main.php return [ 'homeUr ...

  5. php yii composer,PHP Yii2 composer环境安装

    PHP Yii2 composer环境安装 composer 安装 任意目录执行: php -r "copy('https://install.phpcomposer.com/install ...

  6. Scaffold php,GitHub - yiiplus/scaffold: scaffold是一个基于Yii2高级项目模版工程化实现的应用程序...

    Yii 2 Scaffold Project Kit 易加-脚手架(scaffold)是一个基于Yii2高级项目模版工程化实现的应用程序,它将更加高效.规范和工程化的满足项目开发的需求. DIRECT ...

  7. 织梦dedecms模板安装过程的那点事儿

    http://blog.csdn.net/ime33 时间仓促所写,若有考虑不全的,欢迎大牛补充.交流! 未经允许,禁止转载 说说安装织梦模板一些步骤: 当然我们在下载织梦模板的时候附有txt的安装步 ...

  8. Termux 高级终端安装使用配置教程

    Termux 高级终端安装使用配置教程,这篇文章拖了有小半年.因为网上相关的文章相对来说还是比较少的,恰好今天又刷了机,所以就特意来总结一下,希望本文可以帮助到其他的小伙伴.发挥Android平台更大 ...

  9. 织梦php模板安装教程,[教程] DEDECMS织梦模板安装/更换教程大全

    [教程] DEDECMS织梦模板安装/更换教程大全 系列方法一: 1.下载一个模板之后要判断一下模板文件是否齐全.htm文件中是否包括首页.列表页和文章内容页等;htm文件用到的css文件是否包括;模 ...

最新文章

  1. Isometric Game 及译法漫谈
  2. Javascript基础知识 - 基础部分
  3. ffmpeg 找不到bin_FFmpeg开发笔记(九):ffmpeg解码rtsp流并使用SDL同步播放
  4. 计算机内存的故障,电脑内存故障的表现
  5. git使用---工作区和暂存区
  6. 每次新增页面复制粘贴?100多行源码的 element-ui 的新增组件功能教你解愁
  7. 南通大学计算机系本二,2012年南通大学计算机科学与技术学院江苏省内第二批本科(院校代码:1301)...
  8. Linux上开启TUN
  9. 判断字符串中是否含有并一个字符或字符串
  10. ocs 2007 r2 服务体验
  11. android视频 转 gif,手机视频转gif转换器 安卓手机怎样把视频转化成GIF图片,手机视频转GIF方法...
  12. word自动生成目录和页码设置
  13. C++实现华氏温度转为摄氏温度
  14. iOS App配置 Universal Link通用链接
  15. Java利用libreOffice(jodconverter)将office(ppt,Excel,word,text)文档转换成pdf
  16. Easyui项目之添加购物车、清空购物车
  17. 高校实验室仪器设备管理系统/实验室管理系统
  18. html标签图片填充背景色快捷键,ps中填充颜色的快捷键是什么?
  19. Ubuntu移除PDF密码
  20. php 正则 /is,PHP 正则表达式后面接的/isU, /is, /s含义

热门文章

  1. python 玩玩乐 - moviepy 剪辑视频变成 gif 图
  2. 电商可以让农业“真香”吗?
  3. 关于echarts图中的柱状图添加横线问题
  4. 微软尽然要采用谷歌Chromium开源项目开发Edge浏览器,你怎么看?
  5. 深圳ERP软件开发 轻松完成复杂数据管理
  6. 学人工智能需要什么学历?AI学历要求
  7. [WARNING] No archetype found in remote catalog. Defaulting to internal catalog(已解决)
  8. PS技能:人物带状穿插效果制作
  9. 【知识分享】C语言中的设计模式——解释器
  10. 卢沟桥对于古代北京的作用