THINKPHP_关联模型MANY_TO_MANY

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();
}

 

转载于:https://my.oschina.net/miaowang/blog/270443

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值