PHPActiveRecord 学习二
ORM关联查询
a.一对多
针对外键来说 谁属于谁 谁有谁
user表
CREATE TABLE `user` (
`uid` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(30) DEFAULT NULL,
`state` tinyint(1) DEFAULT '0',
PRIMARY KEY (`uid`)
) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8 article表
CREATE TABLE `article` (
`article_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`uid` int(11) NOT NULL,
`comment` varchar(400) CHARACTER SET latin1 DEFAULT NULL,
PRIMARY KEY (`article_id`),
KEY `uid` (`uid`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8
#user表 与 article 表为一对多关系 需要在模型中建立映射模型
article的Model层:
//article表外键uid属于user表的主键 -谁属于谁
static $belongs_to = array(array('user')); user的Model层:
//user表有个article的外键uid 谁有谁
static $has_one = array(array('article','foreign_key'=>'uid'));
##查询user表主键为1-5的集合 同时查询出 user 所对应的文章内容
$users = User::find_by_sql('select * from `user` inner join `article` on(`user`.uid=`article`.uid) where `user`.uid in(12,13,15,16,18)');
foreach($users as $user)
{
echo '序号:'.$user->uid.' 姓名:'.$user->name.' 文章内容:'.$user->article->comment.' <br />';
}
#关联查询的一些小问题
##有些问题 的代码
$users = User::all();
foreach($users as $user)
{
echo '姓名:'.$user->name.' 状态:'.$user->state.' 文章:'.$user->article->comment.'<br />';
}
然后直接遍历 遍历时关联ORM模型 article
这时候发现 出来的数据不完整 关联表article中同一外键的多条记录只显示一条
查了很多资料没出来
就想着用下join吧 用join查询的话 这时候数据就完整了
$users = User::all(
array('joins' => array('article'))
);
#关联插入
$user = User::create(array('name' => 'goto', 'state' => 1));
$user->create_article(array('comment'=>'m a dog'));
PHPActiveRecord 学习二的更多相关文章
- emberjs学习二(ember-data和localstorage_adapter)
emberjs学习二(ember-data和localstorage_adapter) 准备工作 首先我们加入ember-data和ember-localstorage-adapter两个依赖项,使用 ...
- ReactJS入门学习二
ReactJS入门学习二 阅读目录 React的背景和基本原理 理解React.render() 什么是JSX? 为什么要使用JSX? JSX的语法 如何在JSX中如何使用事件 如何在JSX中如何使用 ...
- TweenMax动画库学习(二)
目录 TweenMax动画库学习(一) TweenMax动画库学习(二) TweenMax动画库学习(三) Tw ...
- Hbase深入学习(二) 安装hbase
Hbase深入学习(二) 安装hbase This guidedescribes setup of a standalone hbase instance that uses the local fi ...
- Struts2框架学习(二) Action
Struts2框架学习(二) Action Struts2框架中的Action类是一个单独的javabean对象.不像Struts1中还要去继承HttpServlet,耦合度减小了. 1,流程 拦截器 ...
- Python学习二:词典基础详解
作者:NiceCui 本文谢绝转载,如需转载需征得作者本人同意,谢谢. 本文链接:http://www.cnblogs.com/NiceCui/p/7862377.html 邮箱:moyi@moyib ...
- Quartz学习--二 Hello Quartz! 和源码分析
Quartz学习--二 Hello Quartz! 和源码分析 三. Hello Quartz! 我会跟着 第一章 6.2 的图来 进行同步代码编写 简单入门示例: 创建一个新的java普通工程 ...
- SpringCloud学习(二):微服务入门实战项目搭建
一.开始使用Spring Cloud实战微服务 1.SpringCloud是什么? 云计算的解决方案?不是 SpringCloud是一个在SpringBoot的基础上构建的一个快速构建分布式系统的工具 ...
- DjangoRestFramework学习二之序列化组件、视图组件 serializer modelserializer
DjangoRestFramework学习二之序列化组件.视图组件 本节目录 一 序列化组件 二 视图组件 三 xxx 四 xxx 五 xxx 六 xxx 七 xxx 八 xxx 一 序列化组 ...
随机推荐
- yarn application -kill application_id yarn kill 超时任务脚本
需求:kill 掉yarn上超时的任务,实现不同队列不同超时时间的kill机制,并带有任务名的白名单功能 此为python脚本,可配置crontab使用 # _*_ coding=utf-8 _*_ ...
- 简单ATM机功能实现及感想
感想: 在那一天下午气喘吁吁的上了六楼 在建民的课上 都要带电脑 第一次上这样的课,每一次都是个段子 ,这一次考试是学前考试,什么也不知道 ,但是通过百度, 发现JAVA有很多还都和C语言相似的地方 ...
- Intorduction of Annotation ,about examples in Hello1.java
java ee 里的常用注解 .@Controller,@Service,@Repository,@Component,@RestController这几个注解用于实例化class对象.分别对应于控制 ...
- GIFDecoder源码分析
源码见:ddxxll2008/gifdecoder_java run() public void run(){ if(in != null){ readStream(); }else if(gifDa ...
- LabelFunction 允许在显示数据以前进行处理
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="ht ...
- springboot retry
try/catch,while 循环或者定时任务 这样看起来 好 low sping boot retry , 这样代码更简洁 eg: @Retryable(value= {RemoteAcce ...
- poi excel文件名或者内容中文乱码
1.文件名乱码处理 // excel文件名 String fileName="我报表"; final SimpleDateFormat formatter = new Simple ...
- Shell 编程(循环)
for in 循环语句 #!/bin/bash for x in one two three four do echo number $x done 例:取出passwd中每一行name 并输出 he ...
- Phabricator代码审核Audit用户指南
作者: shaneZhang 分类: 互联网技术 发布时间: 2015-07-04 13:37 概览 Phabricator支持两种代码审查工作流:“review”(提交前审查)和 “audit”(提 ...
- day10-连接mysql虚拟机报错
连接mysql时报:message from server: "Host '192.168.76.1' is not allowed to connect to this MySQL ser ...