1 当基于官方文档安装yii2 框架时,一定注意下载composer后,执行命令
composer global require "fxp/composer-asset-plugin:^1.2.0"
composer create-project --prefer-dist yiisoft/yii2-app-basic basic后在第二条命令安装的过程中要求输入token,可自行注册 github 账户,进行生成。最后还需要进入到项目所在的
web 目录下
开启PHP内置服务器:
php -S localhost:8999我把端口号设置成了8999
2 1 config/db.php
基于文件的数据库配置工具,修改里面的配置参数对应你的数据库配置,在此配置文件里一般配置上你的数据库的名字。及主机名字即可。
3 Active Record (活动记录,以下简称AR)提供了一个面向对象的接口,用以访问数据库中的数据.活动记录类的存在是为了访问数据库的,我们通过创建继承自一个活动记录类的子类A,通常这个类关联着数据库中的表A.。可以直接把数据表中的字段看成继承自活动记录类A的一个子类中的属性。其中访问数据库的常用方法有find,对find 方法的使用时 classname::find->all()
find 可查询->all()
->count()
->ones() 等,其中的限制条件为where,orderby等,还可以
创建一个继承自活动记录类的类Country
(类的名字与数据库中的表的名字是一样的),把它放在models/Country.php
文件,去代表和读取country
表的数据。
4 为了在前端界面显示数据库的内容,需要创建控制器,创建动作,查询数据库里的数据。并创建动作渲染视图。
$countries = Country::find()->orderBy('name')->all();其中的Country 为数据表的名字。“name”为数据表的字段。
5在视图文件里对查询到的数据进行按照字段进行显示。
3
r=country/index 路由:
country 表示的是控制器,在你的应用下有一个country 的控制器,目录结构是controllers/CountryController.php,同时控制器里面有个action 叫做index,这个动作在views
渲染了同名的视图。
同时在views/下有个country文件夹,country文件家下有个inde.php
4 关于模型类的创建创建了一个模型类叫EntryForm .目录为models/EntryForm.php,当使用这个模型类的时候可以
直接导入控制器文件里,加上use app\models\EntryForm;就可以使用啦。
模型类 EntryForm
代表从用户那请求的数据,该类如下所示并存储在 models/EntryForm.php
文件中
5 常用的助手类Html:,通过html 的encode方法对加载的信息进行处理。
<?php
use yii\helpers\Html;
?>
<?= Html::encode($message) ?>
6 模型是 MVC 模式中的一部分,是代表业务数据、规则和逻辑的对象。
$model->load(Yii::$app->request->post()) && $model->validate())
可调用 yii\base\Model::validate() 来验证接收到的数据,该方法使用yii\base\Model::rules()申明的验证规则来验证每个相关属性
Yii::$app
代表应用实例, 它是一个全局可访问的单例。同时它也是一个服务定位器, 能提供 request
,response
,db
等等特定功能的组件。
在上面的代码里就是使用 request
组件来访问应用实例收到的 $_POST
数据。
7 该类继承自Yii 提供的一个基类 yii\base\Model,该基类通常用来表示数据
class childclassname extends parentsclassname php 中类的继承方法,class 子类名 extends 父类名。yii 中的MOdel 类通常用来表示数据,在控制器里通常Yii:$app
是应用实例,能提供request,response 等应用组件,
Yii::$app->request->post()通过应用实例的应用组件收集前端页面提交的数据。并且在控制器里渲染视图确认用户收到的数据。
在视图里小部件 ActiveForm 可以生成html 表单。$form = ActiveForm::begin();表示表单的开始,
$form->field($model, 'name')可以使用$form->field($model,'name')表示单元格的创建。