你现在做的是一个新闻管理系统
你要删除用户的时候,同时删除与用户有关的所有信息
一对一 有HAS ONE 属于 BELONGS TO
一对多 有HAS MANY 属于BELONGS TO
多对多 MANY TO MANY
think_member 和 think_good
![](https://img-my.csdn.net/uploads/201207/19/1342668273_9855.jpg)
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与她对应
(注意,这个效果并不是以上数据库的结果。。。很明显不是用的上面数据库的记录)
![](https://img-my.csdn.net/uploads/201207/19/1342668772_3234.jpg)
但若是一对多,所以,会把所有的是该用户的信息都显示出来。
![](https://img-my.csdn.net/uploads/201207/19/1342668790_1312.jpg)