1 .request的获取方式

  $request = Yii::$app->request;

2. get参数的获取方式

  $id = $request->get('id',1);获取get的id,默认1

3 .post参数的获取方式

  $id = $request->post('id',1); 获取post的id,默认1

4. 判断是否为get或者post的请求

  $request->isGet; $request->isPost ; 是为true,否为false

5. 获取用户

  ip $request->userIP;

6. 将后台数据传递到前台

  return $this->renderPartial('index',$data);  return $this->render('index',$data);  $data表示传递到前台的数据

7. compact 合并数组

8. 前台

<?php  echo \Yii\helpers\Html::encode($str) ?>将$str的html标签转为实体。<?=  echo \Yii\helpers\Html::process($str)?>去掉html标签

9. 不自己定义父模板,不适用原模板

  控制器方法:

  public $layout = 'home';//用属性的方法定义父模板

  public function actionIndex(){

    return $this->render('index');

  }

  在view/layout/写一个home.php,自定义一个父模板

10. 在不用的页面之间互相引用

  <?=$this->render('about'); ?>

11. 模型类

  namespace app\models;

  use \Yii\db\ActiveRecord;

  class Article extends ActiveRecord{}

  在控制器中加入模型方法

  use app\models\Article;

  使用封装好的操控数据库的方法

  $xx = Article::findBySql(sql语句)->all();

12. 查询数据

  查询单条数据:id = 5

  $data = Article::find()->where(['id'=>5])->one();    此处的$data是一个对象

  数组: $data = Article::find()->asArray()->all();    此处的$data是一个数组

  将返回的多条数据分段取出,如得到1000条,分别以10条的形式展示,以减少内存占用的方法:

  foreach(Article::find()->batcjh(10) as $article)){

    $data[] = $article;

  }

  where 查询: where(['and' , [ 'like' , 'cas' , $key.'%' , false ] , [ 'is_delete' => 0] ])->andWhere([ '>' , 'add' , $time])

  left 查询:

  $model = (new Query())

      ->select( ' A.xx , A.xx , B.xx,  B.xx , C.xx' )

      ->from(' ti as A')

      ->leftJoin( ' t2 as B ' , ' ti.id = t2.id ')

      ->leftJoin(' t3 as C ' , ' ti.id = t3.id ')

      ->where($where)

13. 添加数据到数据库

  在控制器的方法中

  $Article = new Article();

  $Article->字段1 = '值';

  $Article->字段2 = '值';

  $data = $Article->insert();或者$data = $Article->save();

  以上两种方法返回的都是true或者false;插入到表article;返回插入的数据的is的方法: $id = $Article->attributes['id'];

14. 修改数据库

  //修改记录

  $article = Article::findOne(11);  //查询id为11的这条数据

  $article->title = 'xxxx';

  $article->num = 10;

  $data = $article->update(); 或者$data = $article->save();

  //修改查看次数(单个字段)

  $data = $Article::updateAllCounters(['num'=>1],['id'=>8]); 修改id为8的这条数据

  $data = $this->updateAll(['name'=>'lisa','sex=>0'] , ['ok'=>1] , '额外条件' ) ;

              ↑字段值                          ↑where     ↑order

  更新数据库,字段自增+1,2018-6-30更新

  $result = Yii::$app->db->createCommand()->update('app_xwnew_items',['price' =>new Expression('price+1')], "item_id=".$item_id)->execute();

15. 删除数据

  $article = Article::findOne(16);

  $article = Article::find()->where(['id'=>15])->one();    $result = $article->delete();

  $article = Article::find()->where(['id'=>15])->all();  $result = $article[0]->delete();

  $result = Article::deleteAll('id>:id And num<:num',[':id'=>13,':num'=>100]);

16. 多表关联查询

  文章分类表(分类id)->文章表 ,首先在models中简历一个分类表的模型类

  $category = Category::findOne(1);

  $result = $category->hasMany(Article::className(),['cate_id'=>'id'])->all();    hasOne方法则是一对一

17.  with的使用

  $result = Article::find()->with('category')->asArray()->all();    其实是用了article模型类中的getcategory()方法。

  public function getCategory(){

    $category = $this->hasOne(Category::className(),['id'='cate_id'])->asArray();

    return $category;

  }

18. 输出sql语句的方法

  $retuslt->createCommand()->getRawSql();

19. 模型类中的查询 :

  $this->find()->where(['a'=>1])->andwhere(['>'],'add_time',123456)->one();

20. Yii获取验证码的方法

  控制器中 :

  $val = new \common\mobles\ValidateCode();

  $val->doimg();

  Yii::$app->session['vakudatacode'] = $val->getCode();

21. Yii2中的表单令牌验证加入防止出现404错误

  在表单中加入<input name="_csrf" type="hidden" id="_csrf" value="<?=Yii::$app->request->csrfToken?>"/>

22. 模型类中只查询某些字段

  $this->find()->select('字段1,字段2')->one();

23. 设置头部信息

  $res = Yii::$app->response;

  $res->statusCode = '404';    //设置访问状态

  $res->headers->add('pragma','no-cache');     //设置头部信息

  $res->headers->set('pragma','max-age=5');    //设置头部信息

  $res->header->remove('pragma');                  //设置头部信息

  跳转

  $res->headers->add('location','http://www.baidu.com');

  $this->redirect('http://www.baidu.com',302);

  文件下载

  $res->headers->add('content-disposition','attachement:filename="a.jpg"');

  $res->sendFile('./b.jpg');

24. session应用组件,session文件在phpstudy/tmp/tmp

  $session = Yii::$app->session;

  if($session->isActive){    //判断session是否开启

    echo 'session is actve';

  }

  $session->set('user', '张三');  //设置session

  $session->get('user');    //获取session  

  $session->remove('user');  //删除session

25. cookie应用组件的使用

  首先在每个控制器的命名空间下加上    use Yii\web\cookie

  $cookie = Yii::$app->response->cookie;

  $cookie_array = array('name'=>'user' , 'value'=>'zhangsan');

  $cookie->add(new Cookie($cookie_data));  //重复设置会覆盖

  $cookie->remove('name');

  $cookie = Yii::$app->request->cookies;

  echo $cookie->getValue('user',20);

  $cookie = Yii::$app->request->cookies;   //只读

  $cookie = Yii::$app->response->cookies;    //可写入

26. 使用common文件夹下的类的方法

  在common下的init.php入口配置文件中引入  如:qq\QC.class.php

  在项目的控制器中使用 new\QC();

27. db直接执行sql

  $db = Yii::$app->db;

  $a = $db->createCommand($sql)->query();  //查询

  $b = $db->createCommand($sql)->execute();  //其他

28. Yii2设置缓存,将查询出来的数据保存到front/runtime/cache/xxx

  方法:$cache = Yii::$app->cache;

     $cache->("company_detail_".$_POST[''id] , $arr , 时间秒);

  读取:$cache->get( "company_detail_".$id );  读取出来的是一个完成的$arr

29. Yii2页面引入js文件

  <?=Html::jsFile('public.plug/xxx/xxx.js')?>

30. 创建事务

  $transaction = Yii::$app->db->beginTransaction();

  提交事务

  $transaction->commit();

  回滚

  $transaction->rollback();

Yii2的框架笔记整理的更多相关文章

  1. 从0开始学Swift笔记整理(五)

    这是跟在上一篇博文后续内容: --Core Foundation框架 Core Foundation框架是苹果公司提供一套概念来源于Foundation框架,编程接口面向C语言风格的API.虽然在Sw ...

  2. Deep Learning(深度学习)学习笔记整理系列之(八)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

  3. Deep Learning(深度学习)学习笔记整理系列之(三)

    Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...

  4. java笔记整理

    Java 笔记整理 包含内容     Unix Java 基础, 数据库(Oracle jdbc Hibernate pl/sql), web, JSP, Struts, Ajax Spring, E ...

  5. JS第一周学习笔记整理

    目录 JS正式课第一周笔记整理 JS正式课第一周笔记整理 webstorm : 代码编辑器 浏览器: 代码解析器: Git : 是一个工具;用于团队协作开发项目管理代码的工具:在工作中用git.svn ...

  6. Spring:笔记整理(1)——HelloWorld

    Spring:笔记整理(1)——HelloWorld 导入JAR包: 核心Jar包 Jar包解释 Spring-core 这个jar 文件包含Spring 框架基本的核心工具类.Spring 其它组件 ...

  7. 运维开发笔记整理-URL配置

    运维开发笔记整理-URL配置 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.URL路由 对于高质量的Web应用来说,使用简洁,优雅的URL的路由是一个非常值得重视的细节.Dja ...

  8. javaweb学习笔记整理补课

    javaweb学习笔记整理补课 * JavaWeb: * 使用Java语言开发基于互联网的项目 * 软件架构: 1. C/S: Client/Server 客户端/服务器端 * 在用户本地有一个客户端 ...

  9. python学习笔记整理——字典

    python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...

随机推荐

  1. java中静态方法和非静态方法调用的一点小困扰,已解决。

    public static void main(String[] args) { // TODO Auto-generated method stub SimpleGui1B gui=new Simp ...

  2. jemalloc和内存管里

    netty的buffer引入了缓冲池.该缓冲池实现使用了jemalloc的思想.为了看懂这块代码学写了内容分配的知识.这里讲的内存分配是堆的内存分配,其他内容本文不会涉及. 内存分配是面向虚拟内存的而 ...

  3. HTML相关知识和经验的碎片化记录

    1.标签input在type="file"时,name是必须属性 <form id="MainFileUpload" name="MainFil ...

  4. 高效配置Linux代理服务器 Squid介绍

    作为一种免费的网络操作系统,Linux越来越受到广大网络爱好者的欢迎,目前Internet上运行的主机有相当一部分采用的就是Linux,而且中国已经把Linux作为政府上网的指定网络操作系统.种种迹象 ...

  5. register的功能

    register:这个关键字请求编译器尽可能 的将变量存在CPU内部寄存器中,而不是通过内存寻址访问,以提高效率.这里注意是尽可能,不是绝对.你想想,一个CPU拥有 的寄存器也就那么几个或几十个,你要 ...

  6. 《Linux内核设计与实现》读书笔记(九)- 内核同步介绍

    存在共享资源(共享一个文件,一块内存等等)的时候,为了防止并发访问时共享资源的数据不一致,引入了同步机制. 主要内容: 同步的概念 同步的方法-加锁 死锁 锁的粒度 1. 同步的概念 了解同步之前,先 ...

  7. 关于 node-sass 安装失败的问题

    最近换了一台计算机,使用ionic+cordova 开发,过程中发现node-sass 总是安装失败,经过搜索之后,发现可能是由于国内被墙导致的,找到了解决办法记录一下: 使用taobao 的镜像,成 ...

  8. MVC之htmlhelper总结

    自学习mvc以来,htmlhelper使用的也非常多,下面开始总结一下吧,由于本人比较懒,内容大部分摘自slark.net的笔记, 有人问为什么用这个htmlhelper,我就喜欢用原生的标签,这个按 ...

  9. c++类 初始化const数据成员

    对于const或引用类型的类成员,唯一的初始化方式是在构造函数中使用成员函数初始化列表.构造函数体中的赋值语句是无效的 正确 #include<iostream> using namesp ...

  10. 正经学C#_判断[IF语句]:[c#入门经典]

    判断语句几乎是最为常用的语句之一,是最有效的. 先说IF语句,IF语句也是属于分支的一种,用来控制流程的. IF的语句是这样的 IF(xxx 条件) { //代码块 } ,b; ) { b=a--; ...