您的位置:首页 > 编程语言 > PHP开发

thinkphp 的关联模型 CURD操作

2011-10-21 17:00 656 查看
关于ThinkPHP的关联模型。
一、数据表
有三个表:
1、think_user
	字段:id、name、password、mark等
2、think_user_info
	字段:id、user_id、user_photo、user_nickname等
3、think_user_liuyan
	字段:id、user_id、liuyan等
二、Model
	文件:UserModel.class.php
	源码:
<?php
class UserModel extends RelationModel{
	protected $_link=array(
		'user_info'=>array(
			'mapping_type'=>HAS_ONE,
			'mapping_name'=>'user_info',
			'class_name'=>'user_info',
			'foreign_key'=>'user_id',
		),
		'user_liuyan'=>array(
			'mapping_type'=>HAS_MANY,
			'mapping_name'=>'user_liuyan',
			'foreign_key'=>'user_id',
			'parent_key'=>'p_id',
		),

	);
}
?>
三、Action
	文件:TestAction.class.php
	源码:
<?php
class TestAction extends Action{
	//查询
	public function index(){
		$user=D('Home.User');
		$list=$user->relation(true)->order('id desc')->findAll();
		dump($list);
	}
	//添加
	public function add(){
		$user=D('Home.User');
		$data=array();
		$data['name']='cloudcome666';
		$data['password']=md5('cloudcome66');
		//HAS_ONE的插入:1维数组
		$data['user_info']=array(
			'user_nickname'=>'网页写入:云淡然665',
		);
		//HAS_MANY的插入:2维数组
		$data['user_liuyan']=array(
			array('liuyan'=>'由网页写入11111111111111'),
			array('liuyan'=>'由网页写入22222222222222'),
		);
		$list=$user->relation(true)->add($data);
	}
	//更新
	public function save(){
		$user=D('Home.User');
		//必须指定主键!!
		$data['id']='17';
		//!!这里更新mark的原因是让主表也有更新操作
		//这样下面的$list的结果就是true,否则就永远是false
		$rn=date('ymdHms');
		$data['mark']=$rn;
		//HAS_ONE的更新:1维数组
		$data['user_info']=array(
			'user_qq'=>'29999',
		);
		//HAS_MANY的更新:2维数组
		$data['user_liuyan']=array(
			array('id'=>'9','liuyan'=>'id=9由网页hfg7hfy7717797181222更新7774764576'),
			array('id'=>'10','liuyan'=>'id=10由网页rtrtu77y7277987221111更新274574572222'),
		);
		$list=$user->relation(true)->where('id=17')->save($data);
		if($list){//$list 为true
			echo '更新成功';
		}else{
			echo '更新失败';
		}
	}
	//删除
	public function del(){
		$user=D('Home.User');
		$list=$user->relation(true)->where('id=16')->delete();
		dump($list);
		if($list){//$list 为true
			echo '删除成功';
		}else{
			echo '删除失败';
		}
	}
}
?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: