您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
thinkphp3.2.3学习笔记-一对多关联模型HAS_MANY
发布时间:2018-05-10 21:18:21编辑:雪饮阅读()
场景:通过一个传入一个栏目表名就可以将每个栏目下的所有文章(包含url、缩略图、关键字)都遍历出来,这是典型的一对多
模型定义CategoryModel.class.php:
<?php
namespace Home\Model;
use Think\Model\RelationModel;
//一个外面d方法中所传入的参数就是类名Model前的部分,将会用该类名作为主表名,与该表进行关联的表名为关联规则名
class CategoryModel extends RelationModel{
protected $_link=array(
//每个link元素的键名就是规则名
'news'=>array(
//第二维数组在第一维数组中的对应的键名
'mapping_name'=>'cxg',
'mapping_type'=>self::HAS_MANY,
//在该副表中与主表所关联的字段名
'foreign_key' => 'catid',
//仅显示该表中的某些字段
'mapping_fields' => 'thumb,url,keywords',
)
);
}
?>
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
public function index(){
//传统用法
/*
$id=I("post.id");
$m=M("v9_news");
$list=$m->where("catid=".$id)->field("thumb,url")->select();
exit(json_encode($list));
*/
//关联模型用法
$m=D("category");
$list = $m->where("catid=6")->relation(true)->field("catid")->find();
$list=$list['cxg'];
exit(json_encode($list));
}
}
关键字词:thinkphp,一对多,关联模型,HAS_MANY