文档章节

THINKPHP_关联模型MANY_TO_MANY

喵王不瞌睡
 喵王不瞌睡
发布于 2014/05/29 00:02
字数 356
阅读 2076
收藏 4

2014/05/28-关联模型/MANY_TO_MANY

 

AdminRealationModel.class.php

class AdminRelationModel extends RelationModel {
 protected $tableName='admin';
  protected $fields = array(
        'id','username','realname','email','logintime','loginip','islock','_pk' => 'id','_autoinc' => true
    );
    
 protected $_link = array(
   //role为角色表名
   'role' => array(
    'mapping_type' =>  MANY_TO_MANY,   //关系类型:多对多
    'foreign_key' =>  'user_id',   //主表在中间表中的字段名称
    'relation_foreign_key' =>  'role_id',   //关联表(副表)在中间表中的字段名称(外键)
    //安装的时候表前缀一定要更改//debug//不能使用C()动态改变
    'relation_table' => 'yy_role_user',  //中间表的表名(多对多关系中必须指定)
    'mapping_fields' => 'name', //只读取关联表(副表)中的部分字段,不指定则为全部字段
    'mapping_order' => 'id' ,//排序
    'mapping_limit' => 0,     //返回记录数
   ),
  );
 public function getData($num=10){
  //$admin=$this->field(true)->relation(true)->where('usertype!=9')->order('id DESC')->page($nowPage.','.$num)->select();
  $adminPage=getPage($this,$num,'usertype!=9','id DESC',2);
  foreach ($adminPage['data'] as $k => $v ){
   $adminPage['data'][$k]['logintime']=date('Y/m/d',$v['logintime']);
   if($v['islock']==1){
    $adminPage['data'][$k]['islock']='锁定';
   }else{
    $adminPage['data'][$k]['islock']='正常';
   }
   $adminPage['data'][$k]['rolename']=$adminPage['data'][$k]['role'][0]['name'];
  }
  return $adminPage;
 }

 

Function.php

/*
*分页封装函数
*type,1为普通模型,2为关联模型
*/
function getPage($model,$num=10,$where=1,$order,$type=1){
 import('ORG.Util.Page');
 $arr=array();
 $arr['count']      = $model->where($where)->count();
 $Page       = new Page($arr['count'],$num);
 $nowPage = isset($_GET['p'])?$_GET['p']:1;
 if($type==1){
  $arr['data'] =$model->field(true)->where($where)->order($order)->page($nowPage.','.$num)->select();
 }
 if($type==2){
  $arr['data'] =$model->field(true)->relation(true)->where($where)->order($order)->page($nowPage.','.$num)->select();
 }
 $arr['page']       = $Page->show();
 return $arr;
}

 

AdminAction.class.php

public function index(){
  $admin=D('AdminRelation')->getData();
  $this->AdminView=$admin['data'];
  $this->count=$admin['count'];
  $this->page=$admin['page'];
  $this->display();
}

 

© 著作权归作者所有

喵王不瞌睡
粉丝 11
博文 168
码字总数 51103
作品 0
浦东
个人站长
私信 提问
「ThinkPHP开发者周刊」第8期——模型和关联

[ 本周读数 ] ——ThinkPHP官方公众号关注数 截至目前为止,ThinkPHP官方公众号(@thinkphp2012)用户订阅数超过(均为自然增长)。由于之前一直缺乏有效的运营而增长缓慢,现每周都会推送最...

流年
2018/11/26
127
0
「ThinkPHP开发者周刊」第4期——日志、调试和通知

[ 本周读数 ] ——官方扩展数量已经超过个 ThinkPHP版本开始,官方的扩展全部通过安装,目前官方维护以及参与的扩展已经超过36个,并且都已经支持最新的版本,涵盖和满足了主流的现代化开发需...

流年
2018/11/05
88
0
新手指导Thinkphp开发指南

小编于昨日参加朋友婚礼,浑身喜气洋洋。今天给用户带来的是关于thinkphp开发指南的纯技术性的文档,本文档目的很简单: 1、 帮助开发人员掌握thinkphp入门 2、 快速利用thinkphp进行项目开发...

汤圆
2012/12/25
303
1
网站安全检测 网站漏洞修复 对thinkphp通杀漏洞利用与修复建议

thinkphp在国内来说,很多站长以及平台都在使用这套开源的系统来建站,为什么会这么深受大家的喜欢,第一开源,便捷,高效,生成静态化html,第二框架性的易于开发php架构,很多第三方的插件...

网站安全
2018/09/05
139
0
thinkphp开发的框架的简单介绍

  说起来现在的互联网时代中用到thinkphp的地方也是很多的,这也是一项技术活,开发框架也是比较有难度的,下面就给大家简单地介绍一下。   ThinkPHP是一个免费开源的,快速、简单的面向...

孙智绘
2012/06/28
47
0

没有更多内容

加载失败,请刷新页面

加载更多

Excption与Error包结构,OOM 你遇到过哪些情况,SOF 你遇到过哪些情况

Throwable 是 Java 中所有错误与异常的超类,Throwable 包含两个子类,Error 与 Exception 。用于指示发生了异常情况。 Java 抛出的 Throwable 可以分成三种类型。 被检查异常(checked Exc...

Garphy
今天
5
0
计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
昨天
6
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
昨天
7
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
昨天
6
0
【技术分享】TestFlight测试的流程文档

上架基本需求资料 1、苹果开发者账号(如还没账号先申请-苹果开发者账号申请教程) 2、开发好的APP 通过本篇教程,可以学习到ios证书申请和打包ipa上传到appstoreconnect.apple.com进行TestF...

qtb999
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部