- 论坛徽章:
- 0
|
本帖最后由 huanguuq 于 2010-04-17 13:02 编辑
ORM多对多关联
支持分布式多对多,只要是数据模型就可以了。就是两个对象可以不同数据库
queryphp ORM关联对象
一对一 hasOne
一对多 hasMany
多对多 ManyhasMany
![]() - $supply=M("supply"); //new 数据库中的表名,目前是模型名,
- //可以在supplyBase.class.php中修改表名
- $books=M("books");
- echo $supply->Books->classname;//自动取得Books中内容
- echo $supply->Books->Supply->title; //反过来取supply中的内容
- echo $supply->title;
- echo $books->classname;
- $supply=M("supply");
- $books=M("booktype");
- $books->get(911);
- //取得id为911的行 并设置为编辑状态
- $info=M("info")->limit(1)->get(1);
- //取得info一行记录并设置编辑状态
- //我们先看看已有对象数据
- print_r($books->getData());
- print_r($info->getData());
- //现在开始实际关联查询了。
- $supply->Books($books)->Infos($info)->fetch();
- echo($supply->querySQL());
- print_r($supply->getRecord());
- //关联查询
- //有点类似这样子
- //where("bookid='".$books->bookid."' and typeid='".$infos->infoid."'")->fetch();
- //当然这样也行 只要设置了$books,$infos有数据为编辑状态后
- //$supply->Books()->Infos()->fetch(); //是一样的。
复制代码 ORM关联设置例子:2:framework/model/supplyModel.class.php- <?php
- class supplyModel extends supplyBase{
- var $mapper=array("Books"=>array("map"=>"hasMany",
- "TargetModel"=>"booktype",
- "mapping"=>array("typeid"=>"typeid",
- "bookid"=>"bookid",
- "supplyid"=>"supplyid")
- ),
- "Infos"=>array("map"=>"hasOne",
- "TargetModel"=>"info",
- "mapping"=>array("typeid"=>"typeid")));
- var $maps;
- var $maparray=array();
-
- }
- ?>
复制代码 具体可以下载chm手册和例子
http://code.google.com/p/queryphp/downloads/list |
|