当前位置: 代码迷 >> Web前端 >> yii 下令模式
  详细解决方案

yii 下令模式

热度:397   发布时间:2012-08-30 09:55:54.0
yii 命令模式
(具体参数描述请使用命令看描述,不过全是英文)
1、Yii提供命令行指令不多,常用的有webapp 和 shell。
1.	message 搜索指定文件信息 yicc message webroot/xxx.php
2.	shell   进入命令行模式 
3.	webapp  创建项目
4.	migrate 数据迁移计划
2、进入命令行模式,
   1、创建项目
1.	%YiiRoot/framework/yiic webapp  webroot/index.php   
%YiiRoot/framework/yiic  一般是框架根目录,需要用的文件为yiic.php:: yiic.bat,一般创建的新项目protecte目录下都有这两个文件。
webroot/index.php 一般是项目根目录根据你的需求来。
2. %YiiRoot/framework/yiic shell  webroot/index.php    
进入后help 可以看到许多命令
            命令
1.	controller 创建控制器 
2.	crud        根据模型创建对应的控制器
3.	form        根据模型创建表单视图 
4.	help        帮助命令
5.	model     根据表名创建模型
6.	moduel	 创建组件
2、创建命令
总结: 流程先建立数据库,根据表结构创建对应的model(model命令),再根据model创建对应的控制器和视图(crud命令)。
(1)、controller 控制器
controller message helloworld goodbye  
message 类前缀,文件前缀,后面可以加无数方法
但是如果以后增加或者修改方法用命令比较麻烦,建议以后手动加。



(2)、crud根据模型创建对应的控制器,必须先建立数据表,才能根本表和模型创建对应的控制器。
Crud  crud modelClassName controllerName 
modelClassName 模型类前缀,文件前缀
controllerName 控制器类前缀,文件前缀
用http模式输入r=gii 如果有没模型文件无法创建,但命令行模式不受影响

(3)、form根据模型创建对应的控制器,必须先建立数据表,才能根本表和模型创建对应的控制器。
Form  modelClassName ViewName  ViewPath  
modelClassName 模型类前缀,文件前缀
ViewName 视图文件
ViewPath  视图路径 application.views或者自己组件的地址

(4)、model根据模型创建对应的控制器,必须先建立数据表,才能根本表和模型创建对应的控制器。
model  modelClassName tableName 
modelClassName 要创建的模式,模型类前缀,文件前缀
tableName 表名

  (5)、module  创建模块
module   moduleId
moduleId  模块ID


3、数据迁移
所有的迁移命令后面可以加上一些参数
--interactive=<true|false> 是否使用交互模式
--migrationPath=app.migrations设置迁移类所在的文件夹
--migrationTable=tbl_migration 设置迁移状态记录表
--connectionID=db设置要将迁移应用到哪个数据库
--templateFile=application.migrations.template设置生成迁移类的模板文件
1)、创建迁移目录:
cd   protected
mkdir migrations
migrations 是数据库临时目录,这个必须先手动创建

2)、创建新的迁移:
Yiic migrate create <name> 
创建一个新的迁移计划,产生一个类在protected/migrations下,你需要实现up和down两个函数
Up    $this->createTable(‘表名’, array(结构)); 
Down  $this->dropTable(‘表名’);删除该表
3)、应用所有迁移:
Yiic migrate 
如果没有给出“行动”参数,则默认为“向上”。

4)、向上迁移:
Yiic migrate up 3
应用三步迁移,若没有数字默认是1

5)、还原迁移:
Yiic migrate down 3
还原最后3步应用迁移,若没有数字默认是1

6)、指定版本迁移:
Yiic migrate to 110809_085201
将迁移应用至2011-08-09  08:52:01创建的那个迁移计划

7)、标记指定迁移版本:
Yiic migrate mark 110809_085201
让系统认为现在的迁移是2011-08-09  08:52:01的那个,但是不实际执行迁移计划。
这点与to命令不同,to会执行迁移计划应用,然后将状态标记,这个只标记。

8)、查看已应用迁移:
Yiic migrate history [limit]
查看已应用的limit步迁移,若没有limit则显示所有

9) 查看可应用迁移:
Yiic migrate new [limit]
查看可以应用的limit步迁移,若没有limit则显示所有
  相关解决方案