yii2高级模板安装和yii migrate的使用
1.通过composer 安装高级版
C:wampwwwyii>composer create-project --prefer-dist yiisoft/yii2-app-advanced advanced
2. 进入 advanced 目录中 执行 init 初始化
- C:wampwwwyii>cd advanced
- C:wampwwwyiiadvanced>init
- Yii Application Initialization Tool v1.0
- Which environment do you want the application to be initialized in?
- [0] Development
- [1] Production
- Your choice [0-1, or “q” to quit] 0
- Initialize the application under ‘Development’ environment? [yes|no] y
- Start initialization …
- generate backend/config/main-local.php
- generate backend/config/params-local.php
- generate backend/web/index-test.php
- generate backend/web/index.php
- generate common/config/main-local.php
- generate common/config/params-local.php
- generate console/config/main-local.php
- generate console/config/params-local.php
- generate frontend/config/main-local.php
- generate frontend/config/params-local.php
- generate frontend/web/index-test.php
- generate frontend/web/index.php
- generate yii
- generate cookie validation key in backend/config/main-local.php
- generate cookie validation key in frontend/config/main-local.php
- chmod 0777 backend/runtime
- chmod 0777 backend/web/assets
- chmod 0777 frontend/runtime
- chmod 0777 frontend/web/assets
- chmod 0755 yii
- … initialization completed.
windows环境下直接运行根目录下的init.bat命令。
3.到此为止我们配置好了 数据库联系信息 以及数据库,但是我们还没有表,我们使用 yii migrate 命令
- C:wampwwwyiiadvanced>yii migrate
- Yii Migration Tool (based on Yii v2.0.0)
- Creating migration history table “migration”…done.
- Total 1 new migration to be applied:
- m130524_201442_init
- Apply the above migration? (yes|no) [no]:y
- *** applying m130524_201442_init
- > create table {{%user}} … done (time: 0.031s)
- *** applied m130524_201442_init (time: 0.055s)
- 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的使用相关推荐
- yii2高级模板开源商城系统实例、示例、DEMO,yii2框架学习开发必备
Yii 是一个高性能的,适用于开发WEB2.0应用的PHP框架,快速.安全.专业的PHP框架. Yii 自带了丰富的功能,包括 MVC,DAO/ActiveRecord,I18N/L10N,缓存,身份 ...
- php 前端模板 yii,php – Yii2高级模板:添加独立网页
我在backend / views / site下添加了help.php,并在SiteController.php下声明了一个能够识别链接的函数 public function behaviors() ...
- yii2高级模板使用一个域名管理前后台
1.修改 advanced/backend/config/main.PHP 文件如下: return ['homeUrl' => '/admin','components' => ['re ...
- yii2高级模板使用一个域名管理前后台(url重写)
前台使用 advanced.com访问,后台使用 advanced.com/admin访问 1.修改 advanced/backend/config/main.php return [ 'homeUr ...
- php yii composer,PHP Yii2 composer环境安装
PHP Yii2 composer环境安装 composer 安装 任意目录执行: php -r "copy('https://install.phpcomposer.com/install ...
- Scaffold php,GitHub - yiiplus/scaffold: scaffold是一个基于Yii2高级项目模版工程化实现的应用程序...
Yii 2 Scaffold Project Kit 易加-脚手架(scaffold)是一个基于Yii2高级项目模版工程化实现的应用程序,它将更加高效.规范和工程化的满足项目开发的需求. DIRECT ...
- 织梦dedecms模板安装过程的那点事儿
http://blog.csdn.net/ime33 时间仓促所写,若有考虑不全的,欢迎大牛补充.交流! 未经允许,禁止转载 说说安装织梦模板一些步骤: 当然我们在下载织梦模板的时候附有txt的安装步 ...
- Termux 高级终端安装使用配置教程
Termux 高级终端安装使用配置教程,这篇文章拖了有小半年.因为网上相关的文章相对来说还是比较少的,恰好今天又刷了机,所以就特意来总结一下,希望本文可以帮助到其他的小伙伴.发挥Android平台更大 ...
- 织梦php模板安装教程,[教程] DEDECMS织梦模板安装/更换教程大全
[教程] DEDECMS织梦模板安装/更换教程大全 系列方法一: 1.下载一个模板之后要判断一下模板文件是否齐全.htm文件中是否包括首页.列表页和文章内容页等;htm文件用到的css文件是否包括;模 ...
最新文章
- Isometric Game 及译法漫谈
- Javascript基础知识 - 基础部分
- ffmpeg 找不到bin_FFmpeg开发笔记(九):ffmpeg解码rtsp流并使用SDL同步播放
- 计算机内存的故障,电脑内存故障的表现
- git使用---工作区和暂存区
- 每次新增页面复制粘贴?100多行源码的 element-ui 的新增组件功能教你解愁
- 南通大学计算机系本二,2012年南通大学计算机科学与技术学院江苏省内第二批本科(院校代码:1301)...
- Linux上开启TUN
- 判断字符串中是否含有并一个字符或字符串
- ocs 2007 r2 服务体验
- android视频 转 gif,手机视频转gif转换器 安卓手机怎样把视频转化成GIF图片,手机视频转GIF方法...
- word自动生成目录和页码设置
- C++实现华氏温度转为摄氏温度
- iOS App配置 Universal Link通用链接
- Java利用libreOffice(jodconverter)将office(ppt,Excel,word,text)文档转换成pdf
- Easyui项目之添加购物车、清空购物车
- 高校实验室仪器设备管理系统/实验室管理系统
- html标签图片填充背景色快捷键,ps中填充颜色的快捷键是什么?
- Ubuntu移除PDF密码
- php 正则 /is,PHP 正则表达式后面接的/isU, /is, /s含义
热门文章
- python 玩玩乐 - moviepy 剪辑视频变成 gif 图
- 电商可以让农业“真香”吗?
- 关于echarts图中的柱状图添加横线问题
- 微软尽然要采用谷歌Chromium开源项目开发Edge浏览器,你怎么看?
- 深圳ERP软件开发 轻松完成复杂数据管理
- 学人工智能需要什么学历?AI学历要求
- [WARNING] No archetype found in remote catalog. Defaulting to internal catalog(已解决)
- PS技能:人物带状穿插效果制作
- 【知识分享】C语言中的设计模式——解释器
- 卢沟桥对于古代北京的作用