关联模型和无限极分类

关联模型

数据来源于多个表,我们之前可以通过表与表之间的连接查询来实现

在ThinkPHP这个框架中,通过关联模型来实现(模型与模型之间的关联来实现的)

表与表之间的关系在ThinkPHP中衍生了4中关联关系:

has_one  一对一

belongs_to  一对多

has_many   多对一

many_to_many  多对多

如何实现关联模型

1,如果需要在模型上体现这种关联关系,需要我们的模型继承自 关联模型

2,如果需要定义关联,通过$_link的形式标记

$_link的值为数组,数组的下标为 当前模型关联的模型的名称,

数组的值还是数组,在这个数组中需要表现出来,关联的类型

3,在使用此关联模型查询时,利用relation(true)这个方法,就可以通过关联模型,将与当前模型相关的数据找到

<?php

 classUserModel extends RelationModel{

    protected $_link=array(

    //数组的下标识和当前模型关联的模型名 (表名---首字母大写)

    'Archive'=>array(

     'mapping_type'=>HAS_ONE,

    // 'mapping_name'=>'User',

    //外键--在当前这个模型中通过那个字段指向和我关联的

     'foreign_key'=>'user_id',

    ),

 

   

    'Grp' =>array(

   //数组元素用来说明关联模型的类别以及使用哪个字段进行关联

        'mapping_type' =>MANY_TO_MANY,

   //在这里需要告诉系统使用的第三张表的名称

        'relation_table' =>'user_grp',

   //还需要告诉系统使用哪个字段进行关联的

        'foreign_key' =>'user_id',

   //还需要知道第三张表中使用那个字段指向外部表

        'relation_foreign_key' =>'grp_id',

   ),

    );

 }

?>

public  function relate(){

    $model=D('User');

    //查询id1的员工

    $list=$model->relation(true)->find(1);

    var_dump($list);

   }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值