比如:你要求删除用户的时候,同时删除与用户有关的所有信息。  
  
一对一:  有 (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关联操作的更多相关文章

  1. thinkphp框架中“关联操作”的完整定义详解

    在复杂的关联操作中,如果要给关联定义增加可选的属性,我们可以采用完整定义的方式. 完整定义的格式是: protected $_link = array(     '关联表名1'  =>  arr ...

  2. ThinkPHP 关联模型(二十)

    原文:ThinkPHP 关联模型(二十) ThinkPHP关联模型 两表关联查询:Message 和  user  关联条件uid(参考手册:模型->关联模型) 步骤: 一:创建Message表 ...

  3. loadrunner:关联操作

    文章以实例讲解loadrunner中的关联操作,内容包括:自动关联.手动关联和关联规则的设置. 1.1.1     准备工作 在web tours项目默认设置里,登录操作是没有生成sessionID的 ...

  4. ThinkPHP CURD 操作

    Thinkphp CURD操作php中实例还对象即可操作 (目录) 1.Add 1 调式程序 3 调出显示页面Trace信息 3 Dump 的含义 4 2.数据库查询 4 1.直接使用字符串进行查找 ...

  5. AcitveReocrd事件和关联操作

    ActiveRecord预定义的事件,都在 yiidbBaseActiveRecord 中进行了明确:   abstract class BaseActiveRecord extends Model ...

  6. ThinkPHP关联模型详解

    在ThinkPHP中,关联模型更类似一种mysql中的外键约束,但是外键约束更加安全,缺点却是在写sql语句的时候不方便,ThinkPHP很好得解决了这个问题.但是很多人不动关联模型的意思.现在就写个 ...

  7. ThinkPHP关联模型如何关联非主键

    ThinkPHP关联模型默认是主键外键关联 官方并没有提供相关文档 如何实现非主键与非主键间之间的关联 <?php namespace Admin\Model; use Think\Model\ ...

  8. jmeter之关联操作

    测试接口过程中,常常会遇到这样的一个情况:上一个请求返回的数据,另外一个接口需要要使用.那么,使用Jmeter操作时我们常常可以用“关联”来实现. 以接口“登录”和“金币充值”为例:即在做“金币充值” ...

  9. FlowNet:simple / correlation 与 相关联操作

    Flow Net : simple / correlation 与 相关联操作 ​ 上一篇文章中(还没来得及写),已经简单的讲解了光流是什么以及光流是如何求得的.同时介绍了几个光流领域的经典传统算法. ...

随机推荐

  1. 行内块+calc+margin 三列布局

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  2. acm学习指引

    acm学习心得及书籍推荐   一般要做到50行以内的程序不用调试.100行以内的二分钟内调试成功.acm主要是考算法的,主要时间是花在思考算法上,不是花在写程序与debug上. 下面给个计划练练: 第 ...

  3. Python使用Flask框架,结合Highchart,搭配数据功能模块处理csv数据

    参考链接:https://www.highcharts.com.cn/docs/data-modules 1.javascript代码 var csv = document.getElementByI ...

  4. Shell脚本中非交互式修改密码的方法(转)

    这篇文章主要介绍了Shell脚本中非交互式修改密码的两种方法,本文讲解了使用chpasswd和使用passwd和--stdin组合两种方法,需要的朋友可以参考下. 对系统定期修改密码是一个很重要的安全 ...

  5. vue-cli项目结构分析

    总体框架 一个vue-cli的项目结构如下,其中src文件夹是需要掌握的,所以本文也重点讲解其中的文件,至于其他相关文件,了解一下即可. 文件结构细分 1.build——[webpack配置] bui ...

  6. radis入门

    redis介绍 是远程的,有客户端.服务端 存内存,吃内存 应用场景 缓存 队列 list操作 push pop 数据存储[根据redis硬盘持久化的机制,这里不展开] 5种数据类型 string 字 ...

  7. BZOJ 1726 洛谷 2865 [USACO06NOV]路障Roadblocks【次短路】

    ·求1到n的严格次短路. [题解] dijktra魔改?允许多次入队,改了次短路的值也要入队. #include<cstdio> #include<algorithm> #de ...

  8. Spring MVC_Hello World

    [Hello World] 步骤: (1)加入jar包, (2)在web.xml中配置DispatcherServlet, (3)加入Spring MVC的配置文件, (4)编写处理请求的处理器,并标 ...

  9. NEU 1351 Goagain and xiaodao's romantic story I

    题目描述 Do you know goagain? If the answer is “no”, well, you can leave NEUACM. Goagain is the most per ...

  10. Oracle Multitenant Environment (一) About

    About oracle mulittenant environment The multitenant architecture enables an Oracle database to func ...