首页 > Web开发 > 详细

ThinkPHP - 关联模型 - 多对多

时间:2016-02-13 17:06:27      阅读:458      评论:0      收藏:0      [点我收藏+]

表结构:
技术分享

 

映射关系:

UserRelationModel会取UserRelation为表名称。所以要自定义表名称:

//定义主表名称
protected $tableName = ‘User‘;

<?php
Class UserRelationModel extends RelationModel {
    //定义主表名称
    protected $tableName = ‘User‘;

    //定义关联模型
    protected $_link = array(
        ‘Role‘ => array(
            ‘mapping_type‘ => MANY_TO_MANY,      //多对多关系
            ‘foreign_key‘  => ‘user_id‘,        //role对应的外键关系
            ‘relation_foreign_key‘ => ‘role_id‘,   //user表对应的外键关系
            ‘relation_table‘ => ‘ms_role_user‘,    //要关联的表
‘mapping_fields‘ => ‘id, name, remark‘ //关联哪些字段 ) ); }

 

 

查询的结果:

Array
(
    [0] => Array
        (
            [id] => 1
            [username] => admin
            [logintime] => 1455336937
            [loginip] => 127.0.0.1
            [lock] => 0
            [Role] => Array
                (
                )

        )

    [1] => Array
        (
            [id] => 2
            [username] => thinkbaitang
            [logintime] => 1455339999
            [loginip] => 127.0.0.1
            [lock] => 0
            [Role] => Array
                (
                    [0] => Array
                        (
                            [id] => 1
                            [name] => Manager
                            [remark] => 普通管理员
                        )

                    [1] => Array
                        (
                            [id] => 2
                            [name] => Admin
                            [remark] => 高级管理员
                        )

                )

        )

    [2] => Array
        (
            [id] => 3
            [username] => zhangsna
            [logintime] => 1455340000
            [loginip] => 127.0.0.1
            [lock] => 0
            [Role] => Array
                (
                    [0] => Array
                        (
                            [id] => 1
                            [name] => Manager
                            [remark] => 普通管理员
                        )

                    [1] => Array
                        (
                            [id] => 2
                            [name] => Admin
                            [remark] => 高级管理员
                        )

                    [2] => Array
                        (
                            [id] => 3
                            [name] => SuperAdmin
                            [remark] => 超级管理员
                        )

                )

        )

)

 

ThinkPHP - 关联模型 - 多对多

原文:http://www.cnblogs.com/KTblog/p/5188044.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!