CakePHP 3.2 数据库访问和ORM篇
来源:互联网 发布:淘宝刷单兼职91lingla 编辑:程序博客网 时间:2024/06/11 16:40
Cake数据库访问
1.简单查询案例
CakePHP3.X的语法不同于2.0的语法,随着PHP的升级,CakePHP的语法更加的近似于TP等一些框架的语法
use Cake\ORM\TableRegistry;$articles = TableRegistry::get('Articles');$query = $articles->find();foreach ($query as $row) { echo $row->title;}
当在控制器内操作数据库的查询等操作必须引入 use Cake\ORM\TableRegistry; 只有这样这样才能对表、对应的MODEL接口进行操作.
当我们想调用Table.phpMODEL文件,必须先写一下引入模板
$articles = TableRegistry::get('Access');
2.条件查询
$articles = TableRegistry::get('Access')->where('id'=>'1')和20版本一样3.0也具备查询数量的方法封装
$articles = TableRegistry::get('Access')->where('id'=>'1')->first();<pre name="code" class="php">$articles = TableRegistry::get('Access')->where('id'=>'1')->all();
这样查出来的数据无论在页面调试和调用的时候都会遇到不小的麻烦,因为这样查出来的数据不会看到好多数据是调试信息,而有的数据是为了保护也根本取不到,那么我们用toArray()方法进行装换一下
<pre name="code" class="php">$articles = TableRegistry::get('Access')->where('id'=>'1')->all()->toArray();
3.联合查询
首先介绍一下简单的两表查询,cake3.0关联表查询方法有很多,但是因为用习惯了2.0的原因,自己比较喜欢下面这种
$query = $articles->find() ->hydrate(false) ->join([ 'table' => 'comments', 'alias' => 'c', 'type' => 'LEFT', 'conditions' => 'c.article_id = articles.id', ]);
当多添加关联的时候
$query = $articles->find() ->hydrate(false) ->join([ 'c' => [ 'table' => 'comments', 'type' => 'LEFT', 'conditions' => 'c.article_id = articles.id', ], 'u' => [ 'table' => 'users', 'type' => 'INNER', 'conditions' => 'u.id = articles.user_id', ] ]);
4.插入数据
3.0的插入数据也有多种,下面介绍下其中的两种
1.这种方法是对象的写法,先创建一个实体
$res=TableRegistry::get('Allgroups'); $article=$res->newEntity(); $article->mcd='asdf'; $res->save($article);2.配合表查询的插入
$select = $articles->find() ->select(['title', 'body', 'published']) ->where(['id' => 3]);$query = $articles->query() ->insert(['title', 'body', 'published']) ->values($select) ->execute();
5.更新数据
封装好的SQL执行法通用都是用“->”来调用的
<pre name="code" class="php">$res=TableRegistry::get('Allgroups');$query = $res
->query()
->update()
->set(['status'=>'2')
->where(['id'=>1])
->execute();
6.删除数据
<pre name="code" class="php"><pre name="code" class="php">$res=TableRegistry::get('Allgroups');$query = $res->query();$query
->delete()->where(['id' => $id])->execute();
2 0
- CakePHP 3.2 数据库访问和ORM篇
- 数据库访问与ORM
- 数据访问策略和ORM
- Rails遗留数据库访问之一动态ORM
- SQLAlchemy 笔记 ORM方式访问数据库
- Spring数据库访问之ORM(一)
- Spring数据库访问之ORM(二)
- Spring数据库访问之ORM(三)
- [开源].NET数据库访问框架Chloe.ORM
- Openstack 通过 SQLAlchemy-ORM 访问数据库
- cakephp连接多个数据库和使用数据库的表
- 数据访问模式 orm和cmp区别
- CakePHP数据库配置
- 轻量级的ORM框架Peewee访问sqlite数据库
- Trace.ORM.Service、Trace.ORM.Data OR映射数据库访问中间件介绍
- CakePHP 3.2插件引入插件篇
- cakephp: 和Smarty集成
- cakephp: 和Smarty集成
- 机房重构之七层登录
- CentOS7 yum 安装git
- HTML
- 电话拨号器,短信发送器
- iOS 获取当前IP地址
- CakePHP 3.2 数据库访问和ORM篇
- mongodb集群搭建
- 连连看完善
- 上机题目(初级)- 下雪球(Java)
- Python IDLE或Python Shell不支持中文编码的解决方案
- [LeetCode]145 二叉树后序遍历
- ELK(六)ElasticSearch索引
- gcc/g++ 动态 静态 链接库 so
- Linux http post 请求 实例