TP中的模型关联的多对多关系
admin
2023-06-17 05:21:39
0

TP5中完全推翻了3.2的做法,不再使用原来的查询语句,比如select,join之类的条件查询。而是使用模型关联,一对多和多对多的关系进行关联。方便用户调用数据,减少代码的编写量。

下面直接开始上代码:

role.php(model层)

class Role extends Model{

   public function Nodes()

   {

       return $this->belongsToMany('Node','RoleAuthorization','node_id','role_id');

   }

}

user.php(model层)

class User extends Model{

    public function Roles(){

       return  $this->belongsToMany('Role','RoleUser','pms_role_id','pms_user_id');

    } 

}

另外几张表只需要写一个模型就OK,不用写任何东西,它会自动调用。(node,roleauthorization,roleuser)

在控制器调用model,直接实例化,调用你写的方法

$user_model  = Loader::model('User');

        $user_result = $user_model->get(1);

        echo $user_result.'
';


        $data = $user_result->Roles;

        foreach ($data as $key => $value) {

            echo $value['id'].'
';

            echo $value['name'].'
';

            // $aa = $data->Nodes;

            // dump($value->Nodes);

            foreach ($value->Nodes as $pk=>$pv){

                   echo $pv->node."
";

               }

        }

首先,字段pms_role_id,pms_user_id字段在中间表roleuser里,注意字段的顺序,根据你关联表的顺序来进行写的,顺序错误数据就会不对。node_id,role_id字段在roleauthorization表里。

相关内容

热门资讯

台官员称岛内高铁延误事故“不排... 【环球网报道】据中时新闻网等台媒5月27日报道,台湾高铁25日因苗栗路段信号异常,导致轨道定位功能消...
国家统计局:1~4月全国规模以... 【大河财立方消息】5月27日,国家统计局发布的数据显示,1—4月份,全国规模以上工业企业实现利润总额...
《给阿嬷的情书》火出圈 在“潮... 电影《给阿嬷的情书》剧照。潮汕宗祠龙形屋檐构件。 河南日报全媒体记者 王佳卉 摄近日,电影《给阿嬷的...
为孤困儿童插上“隐形的翅膀” 在新密市牛店镇参加营会活动的一部分孩子,行走在乡间的田垄上。登山、徒步,跟村民打招呼、拨弄路边的花草...
收麦的时候 想家的时候——“蹲... 豫东平原,麦浪翻涌。5月23日一早,李创业坐上了回老家河南商丘的高铁,看到窗外一望无际的麦田,他说“...
搭好家门口的“就业桥” 5月26日清晨,位于武陟县黄河大道与文化路交叉口的零工市场已是人头攒动,门头的LED大屏滚动播放着最...
烟火气息+中原底蕴 豫篮联赛“... 豫篮联赛吉祥物以东汉瑞兽石辟邪为设计原型。 赛事组委会供图赛场外非遗市集上的面塑。小演员演唱《穆桂英...
豫北小城何以“圈粉”国际大咖 当科幻片中的“意念控物”照进现实,大脑信号便可精准操控康复设备,助力残障患者重启运动能力——前沿的脑...
我国地理信息产业加快打造“空间... 新华社北京5月26日电随着人工智能与地理信息技术深度融合,我国地理信息产业加快打造“空间智能体”,不...