各个Yii2.0框架下载链接:https://github.com/yiisoft/yii2/releases
一.应用结构
1.模型
模型是MVC模式中一部分,是代表业务数据,规则和逻辑的对象。
属性代表业务数据,每个属性是模型的公有可访问属性。
echo $model->getAttributeLabel('name');
当属性显示或获取输入时,经常显示属性相关标签。应用支持多语言的情况下,可翻译属性标签。
注:属性标签是 视图一部分, 但是在模型中声明标签通常非常方便,并可形成非常简洁可重用代码。
二.常用组件
1.美化路由(urlManager)
去掉index.php 配置component组件
参考文章:https://blog.csdn.net/lmjy102/article/details/53857520
2.语言包的配置
参考文章:http://www.yii-china.com/post/detail/177.html
3.上传图片组件: http://www.yii-china.com/post/detail/15.html
4.富文本编辑器组件 : http://www.yii-china.com/post/detail/03.html
三.数据库操作
var_dump($data); exit(0); 测试函数
创建一个yii\db\Command的对象,调用对象的方法来执行SQL查询,返回值是字符型的数组
$posts=Yii::$app->db->createCommand('SELECT * FROM post')->queryAll();
SQL语句还可以绑定参数
$posts=Yii::$app->db->createCommand('SELECT * FROM post
where id=:id AND status=:status')
->bindValue(':id',$_GET['id']);
->bindValue(':status',2);
->queryOne();
1.Yii\db\command的优缺点
1>.简单,只需要处理SQL语句和数组即可
2>.高效,通过SQL语句来查询数据库非常高效
1>.不同数据库系统的SQL语句会有些差别,因此无法做到代码适用于多种数据库系统
2>.用数据,没有用到面向对象的方式来管理数据,代码难维护
3>.如果不小心,会留下SQL注入这种不安全的因素
1.ActiveRecord
ActiveRecord(活动记录,简称AR类)提供了一套面向对象的接口,用以访问数据库中的数据。
1》一个AR类关联一张数据表,每个AR对象对应表中的一行
2》AR对象的属性,对应为数据库中的列
3》可以直接以面向对象的方式来操纵数据表中的数据,这样就不需要写SQL语句就能实现数据库的访问。
2.声明ActiveRecord类
通过继承yii\db\ActiveRecord基类来声明一个AR类,并实现tableName方法,返回与之相关联的数据表的名称。
Class Post extends \yii\db\ActiveRecord{
Public static function tableName(){
Return ‘post’;
}
}
3.查询数据
AR提供了两种方法来构建DB查询,返回AR对象,
*Yii\db\ActiveRecord::find()静态方法
$model=Post::find()->where(['id'=>32])->one();
等价于Post::findOne(32);
$models=Post::find()->where(['statue'=>32])->all();
等价于Post::findAll([‘statue’=>32]);
$models=Post::find()->where(['AND'[‘status’=>1],[‘author_id