网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

TP中的模型关联的多对多关系

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

依安网站制作公司哪家好,找创新互联建站!从网页设计、网站建设、微信开发、APP开发、自适应网站建设等网站项目制作,到程序开发,运营维护。创新互联建站从2013年开始到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联建站

下面直接开始上代码:

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表里。


新闻标题:TP中的模型关联的多对多关系
本文来源:http://bjjierui.cn/article/gggepe.html

其他资讯