thinkphp 关联模型

你现在做的是一个新闻管理系统

你要删除用户的时候,同时删除与用户有关的所有信息

 

 

一对一  有HAS ONE   属于 BELONGS TO

一对多  有HAS MANY 属于BELONGS TO

多对多  MANY TO MANY

 

 

think_member 和 think_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

  //mappling_limit

//mapping_order

//parent_key 自引用关联的关联字段,parent_id
  

 

 

 

      ),
);
}
?>

 

MemberAction.class.php

关联查询
<?php
class MemberAction extends Action{
function index(){
  $member=D('member'); //实例化自定义模型。
  //关联查询
  $list=$member->relation(true)->select();//默认relation是false,所以,别忘了开启关联。
        dump($list);
 

}
?>

 

关联插入
<?php
class MemberAction extends Action{
function index(){
  $member=D('member');
 
  //关联插入(这是一对多)
  $data['username']='bbbbbbb';
  $data['password']='bbbbbbb';
  $data['good']=array(
    array('title'=>'teacher'),
    array('title'=>'student'),
    )
;
  $list=$member->relation(true)->add($data);  
   } 

}
?>

 

 

 

//关联更新

<?php
class MemberAction extends Action{
function index(){
  $member=D('member');
 
  $data['username']='cql';
  $data['password']='cccccc';
  $data['good']=array(
    array('id'=>1,'title'=>'student'),
    array('id'=>2,'title'=>'nnnnnn');
        
        $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',
  ),
);
}
?>

has_one 的效果图

因为是一对一,所以,对于每一个id ,只有一个good与她对应

(注意,这个效果并不是以上数据库的结果。。。很明显不是用的上面数据库的记录)

但若是一对多,所以,会把所有的是该用户的信息都显示出来。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值