- 路由:两种方式,第一种是默认方式访问,假设配置了虚拟主机,那么localhost/web/index.php?r=admin/index 访问的是controllers目录下的admin控制器里的index方法。如果使用的是modules,那么localhost/web/index.php?r=admin/admin/index 访问的是modules目录下的admin模块admin控制器里的index方法。控制器必须要加 Controller ,普通的类不要加 Controller ,方法前必须加action,否则路由不能识别。驼峰命名的控制器名还有方法名(yii里称控制器ID,模块ID等)在路由里要加 - ,比如:UserLoginController 要写成 user-login。美化的url需要使用url管理器。web.php里配置urlManager,后续更新URLmanager用法。。
- 应用:
- aliases: 可以通过aliases给路径起个别名。
- bootstrap: 给一个模块自定义一个url规则。注:启动组件太多浪费性能。
- catchAll:维护模式下使用,指定一个控制器方法处理所有用户请求。
- components: 注册应用组件。
- controllerMap:不想用默认的控制器ID指向控制器类,可以配置此属性,使用自定义的控制器ID指向控制器类。
- modules:配置模块类
- name:显示给终端用户的应用名称。
- viewPath:指定视图文件的根目录
- yii框架流程图:https://www.yiichina.com/doc/guide/2.0/start-workflow
- 控制器:控制器的方法如果有参数的话,最好是设置默认值,不然页面中没有传相对应的参数时会报错。方法前面加action,Yii 使用
action
前缀区分普通方法和操作。action
前缀后面的名称被映射为操作的 ID。 - 视图:控制器里渲染视图使用 $this->render('', []); 第一个参数时url, 第二个是传的参数,视图文件可以使用<?=Html::encode($var)?> 输出变量。视图文件保存的路径 views/控制器ID/视图文件名.php。视图文件名直接和方法名相同名字不容易出问题把。(受tp的影响-_-#)
- 模型:创建模型,一种是与数据表无关的,即创建表单;另一种与数据表有关。yii\base\Model 被用于普通模型类的父类并与数据表无关,yii\db\ActiveRecord 通常是普通模型类的父类但与数据表有关联(译注:yii\db\ActiveRecord 类其实也是继承自 yii\base\Model,增加了数据库处理)。class UserForm extends Model{}创建表单。UserForm里的rules方法用来验证表单数据。验证表单数据可以调用UserForm实例化的模型的validate() 方法来触发数据验证,如果数据验证失败,hasErrors将被设置为true,通过调用getErrors获取错误信息。(new UserForm)->validate()触发数据验证。
继承了activeRecord的模型,yii会根据类名去找数据表,当然也可以通过tableName()方法显式指定表名。// 获取 country 表的所有行并以 name 排序 $countries = Country::find()->orderBy('name')->all(); // 获取主键为 “US” 的行 $country = Country::findOne('US'); // 输出 “United States” echo $country->name; // 修改 name 为 “U.S.A.” 并在数据库中保存更改 $country->name = 'U.S.A.'; $country->save();
linkPager小部件显示分页。
- 自动加载:要使用 Yii 的类自动加载器,你需要在创建和命名类的时候遵循两个简单的规则,每个类都必须置于命名空间之下 (比如
foo\bar\MyClass
);每个类都必须保存为单独文件,且其完整路径能用以下算法取得,$classFile = Yii::getAlias('@' . str_replace('\\', '/', $className) . '.php');
相关文章
- Cocos2d-x简单游戏代码实现|第一部分:鱼类
- Cocos2d-x 捕鱼达人游戏学习教程(8)--添加PanelLayer数据面板层
- Cocos2d-x 捕鱼达人游戏学习教程(4)--实现鱼层类FishLayer
- (译)如何使用cocos2d制作一个Slide Image Game:第一部分
- 如何使用cocos2d-x制作一个山寨Angry Birds游戏:第一部分
- (13)如何使用Cocos2d-x 3.0制作基于tilemap的游戏:第一部分
- 【原】使用Cocos2d制作一个类似于魔塔的iPhone游戏-第一部分(下)
- 14. 如何使用cocos2d来制作一个打地鼠的游戏:第一部分
- (译)如何使用cocos2d制作基于tile地图的游戏教程:第一部分
- (译)cocos2d精灵教程:第一部分