如果你对该文章中的内容有疑问/不解,可以点击此处链接提问
要注明问题和此文章链接地址 点击此处跳转
参考文档
http://www.yiichina.com/doc/guide/2.0
下载composer
安装yii2
https://packagist.org/packages/yiisoft/yii2-app-basic
//安装插件,可以瞎子啊静态的文件
composer global require "fxp/composer-asset-plugin:~1.0.0"
//获取github token值
https://github.com/settings/tokens
//安装composer
///--prefer-dist 下载压缩版
composer create-project yiisoft/yii2-app-basic yii --prefer-dist
压缩包安装
压缩包安装 需要在web.php cookieValidationKey 随机设置字符串
目录结构
composer.json composer配置文件
config/
console.php 控制台应用配置信息
web.php web应用配置信息
commands/ 包含控制台命令类
controllers/ 控制器类
models/ 模型类
runtime/
vendor/ composer包
views/ 视图文件
web/ web应用目录
assets/ 静态资源文件
index.php 入口文件
yii 命令执行脚本
定义全局函数
/helper/function.php
在文件中定义函数
打开入口文件 index.php
require(__DIR__.'../helper/function.php');
获取参数
get
$request = \Yii::$app->request;
$id = $request->get('id',1);//给个默认值1
post
$uu = $request->post('uu','aaaa');//给个默认值aaaa
$request->isGet;
$request->isPost;
$request->userIp;//获取用户的IP
控制器分配数据
return $this->renderPartial('index');
return $this->renderPartial('index',['data'=>$data]);
输出 <?php echo $data; ?>
compact
$user = [.....];
$article = '';
return $this->renderPartial('index',compact('user','article'));
return $this->render('index',compact('user','article'));
//render 输出父模板的内容
//renderPartial 输出本次渲染的内容
定义父模板(c)
public $layout = "home" //layout/home
模板之间的相互调用
<?php echo $this->render('about'); ?>
字符串过滤
use \yii\helpers\Html;
use \yii\helpers\HtmlPurifier;
<?php Html::encode($user->name); ?> //转为实体
<?php HtmlPurifier:process($post->text); ?> //彻底过滤
模型的创建
数据库的修改
config/db.php
模型
use app\models\User
$sql = "selecy * from user where uid = ".$id;
User::findBySql($sql)->all();
防sql注入
selecy * from user where uid = 1
selecy * from user where uid = 1 or 1=1 //查询出全部
selecy * from user where uid = 1 ;drop table user;-- //删除user表
$sql = "selecy * from user where uid = :id";
User::findBySql($sql,[':id'=>$id])->all();
model
查看
//获取所有数据
$data = User::find()->all();
$data = User::find()->>where(['id'=>1])->all();
$data = User::find()->>where(['>','id',3])->all();
$data = User::find()->>where(['between','id',3,9])->all();
$data = User::find()->>where(['like','title','我名字'])->all();
$data = User::find()->>where(['id'=>1])->one();
$data = User::findOne(5);//id=
$data = User::findAll([3,5,7,9]);
转换为数组
$data = User::find()->>asArray()->all();
//分批次获取数据,减缓内存压力
foreach(User::find()->batch(10) as $article){
$data[] = $article;
}
添加
$article = new Article();
$article->title = 'sssssss';
$article->num = 10;
$data = $article->insert();
$data = $article->save();
获取id
$id = $article->attributes['id'];
修改
$article = User::findOne(5);//id=
$article->title = '';
$data = $article->updata();
$data = $article->save();
自增
Article::updateAllCounters(['num'=>1],['id'=>8]);
删除
$article = User::findOne(5);//id=
$article ->delete();
Article::deleteAll();
Article::deleteAll('id=11');
Article::deleteAll('id>:id and num < :num',[':id'=>13,':num'=>100]);
一对多查询
$list = $category->hasMany('app\models\Article',['cate_id'=>'id'])->all();
$list = $category->hasMany(Article::className(),['cate_id'=>'id'])->all();
$article = Article::find->with('category')->asArray()->all()
王明昌博客
