thinkphp关联操作
比如:你要求删除用户的时候,同时删除与用户有关的所有信息。
一对一: 有 (HAS_ONE) 属于 (BELONGS_TO)
一对多: 有 (HAS_MANY) 属于 (BELONG_TO)
多对多: (MANY_TO_MANY)
HAS_ONE HAS_MANY:
表aoli_member
表aoli_good
MemberModel.class.php
<?php
class MemberModel extends RelationModel{
protected $_link=array(
'good'=>array(
'mapping_type'=>HAS_MANY,//HAS_ONE查询出一条
'class_name'=>'good',
'mapping_name'=>'good',
'foreign_key'=>'uid',
'mapping_fields'=>array('id','uid','title'),
'as_fields'=>'title,id:goodid',
//'condition'=>'',//筛选条件
//'foreign_key'=>'',//外键
//'mapping_fields'=>'',//关联字段
//as_fields
),
);
}
?>
MemberAction.class.php
关联查询
<?php
class MemberAction extends Action{
function index(){
$member=D('member');
//关联查询
$list=$member->relation(true)->select();
dump($list);
}
}
?>
关联插入
<?php
class MemberAction extends Action{
function index(){
$member=D('member');
//关联插入
$data['username']='bbbbbbb';
$data['password']='bbbbbbb';
$data['good']=array(
array('title'=>'郝杰'),
array('title'=>'燕子'),
);
$list=$member->relation(true)->add($data);
//关联查询
$list=$member->relation(true)->select();
dump($list);
}
}
?>
关联更新
<?php
class MemberAction extends Action{
function index(){
$member=D('member');
$data['username']='杰天使';
$data['password']='jieangel';
$data['good']=array(
array('id'=>1,'title'=>'郝杰'),
array('id'=>2,'title'=>'燕子'),
);
//关联更新
$list=$member->relation(true)->where('id=1')->save($data);
dump($list);
}
}
?>
关联删除
<?php
class MemberAction extends Action{
function index(){
$member=D('member');
//关联删除
$list=$member->relation(true)->delete('4');
}
}
?>
BELONGS_TO:
GoodAction.class.php
<?php
class GoodAction extends Action{
function index(){
$good=D('good');
$list=$good->relation(true)->select();
dump($list);
}
}
?>
GoodModel.class.php
<?php
class GoodModel extends RelationModel{
protected $_link=array(
'member'=>array(
'mapping_type'=>BELONGS_TO,
'foreign_key'=>'uid',
),
);
}
?>
转自http://blog.sina.com.cn/s/blog_7fb1495b0100y5x7.html
thinkphp关联操作的更多相关文章
- thinkphp框架中“关联操作”的完整定义详解
在复杂的关联操作中,如果要给关联定义增加可选的属性,我们可以采用完整定义的方式. 完整定义的格式是: protected $_link = array( '关联表名1' => arr ...
- ThinkPHP 关联模型(二十)
原文:ThinkPHP 关联模型(二十) ThinkPHP关联模型 两表关联查询:Message 和 user 关联条件uid(参考手册:模型->关联模型) 步骤: 一:创建Message表 ...
- loadrunner:关联操作
文章以实例讲解loadrunner中的关联操作,内容包括:自动关联.手动关联和关联规则的设置. 1.1.1 准备工作 在web tours项目默认设置里,登录操作是没有生成sessionID的 ...
- ThinkPHP CURD 操作
Thinkphp CURD操作php中实例还对象即可操作 (目录) 1.Add 1 调式程序 3 调出显示页面Trace信息 3 Dump 的含义 4 2.数据库查询 4 1.直接使用字符串进行查找 ...
- AcitveReocrd事件和关联操作
ActiveRecord预定义的事件,都在 yiidbBaseActiveRecord 中进行了明确: abstract class BaseActiveRecord extends Model ...
- ThinkPHP关联模型详解
在ThinkPHP中,关联模型更类似一种mysql中的外键约束,但是外键约束更加安全,缺点却是在写sql语句的时候不方便,ThinkPHP很好得解决了这个问题.但是很多人不动关联模型的意思.现在就写个 ...
- ThinkPHP关联模型如何关联非主键
ThinkPHP关联模型默认是主键外键关联 官方并没有提供相关文档 如何实现非主键与非主键间之间的关联 <?php namespace Admin\Model; use Think\Model\ ...
- jmeter之关联操作
测试接口过程中,常常会遇到这样的一个情况:上一个请求返回的数据,另外一个接口需要要使用.那么,使用Jmeter操作时我们常常可以用“关联”来实现. 以接口“登录”和“金币充值”为例:即在做“金币充值” ...
- FlowNet:simple / correlation 与 相关联操作
Flow Net : simple / correlation 与 相关联操作 上一篇文章中(还没来得及写),已经简单的讲解了光流是什么以及光流是如何求得的.同时介绍了几个光流领域的经典传统算法. ...
随机推荐
- 数组array的常用方法简介
数组方法简介 数组总共有22种方法,本文将其分为以下几类来进行详细介绍. 原数组变化:push() pop() shift() unshift() reverse() sort() splice() ...
- [angular2]解决安装 angular-cli 报错:Cannot find module 'github-url-from-git'
1.运行:sudo rm -rf /usr/local/lib/node_modules/npm 2.重新安装最新版本的node,最新版本的node已经集成了npm,所以无需另外安装. 3.运行:su ...
- C++中重载,重写,隐藏的区别
重载: 重载是指在同一个作用域下,函数的函数名相同,但是函数参数的个数,或者参数的类型,参数的顺序不同.这时函数之间就构成了重载关系,这里需要注意的是,如果函数的参数列表完全相同,仅仅是返回值类型不同 ...
- response对象设置输出缓冲大小
response对象设置输出缓冲大小 制作人:全心全意 通常情况下,服务器要输出到客户端的内容不会直接写到客户端,而是先写到一个输出缓冲区,在计算机术语中,缓冲区被定义为暂时放置输入或输出资料的内存. ...
- ubuntu root用户登陆
sudo vi /etc/lightdm/lightdm.conf (如果没有该文件则创建,内容如下) [SeatDefaults] user-session=ubuntu greeter-ses ...
- PYGAME学习笔记_01
01_使用PYGAME创建图形窗口 1.1_游戏的初始化和退出 pygame.init() 写入并初始化所有PYGAME模块,使用其他模块之前,必须先调用init方法 pygame.quit() 卸载 ...
- 洛谷 2966 2966 [USACO09DEC]牛收费路径Cow Toll Paths
[题意概述] 给出一个图,点有正点权,边有正边权,通过两点的代价为两点间的最短路加上路径通过的点的点权最大值. 有M个询问,每次询问通过两点的代价. [题解] 先把点按照点权从小到大排序,然后按照这个 ...
- java Beanutils.copyProperties( )用法
这是一篇开发自辩甩锅稿~~~~ 昨天测试小姐姐将我的一个bug单重开了,emmmm....内心OS:就调整下对象某个属性类型这么简单的操作,我怎么可能会出错呢,一定不是我的锅!!but再怎么抗拒,bu ...
- linux下安装并配置vim
1.安装:sudo apt-get install vim-gtk 安装好后vim,并按“tab”键,可以看到vim的存在,则安装好2.设置更加人性化:sudo vim /etc/vim/vimrc ...
- 给nginx生成自签名证书
https://blog.csdn.net/qq_26819733/article/details/53431662 https://www.liaoxuefeng.com/article/00141 ...