zoukankan      html  css  js  c++  java
  • Yii关联查询返回多表数据-with()

    有两张表

    cmp_role 权限 id

    cmp_user 用户 role_id 关联cmp_role的id 

    role - user 一对多关系 反之 user - role 多对一关系

    1、models 建立表关系

    CmpRole.php
    class CmpRole extends yiidbActiveRecord
    {
        public static function model($className=__CLASS__)
        {
            return parent::model($className);
        }
    
        /**
         * {@inheritdoc}
         */
        public static function tableName()
        {
            return 'cmp_role';
        }
        //第一个参数 关联表 表名 第二个参数1 关联表 字段 参数2为主表 ID
        public function getCmpUser(){
             return $this->hasMany(CmpUser::className(), ['role_id'=>'id'])->asArray();
        }
    }

    CmpUser.php

    class CmpUser extends yiidbActiveRecord
    {
        /**
         * {@inheritdoc}
         */
        public static function tableName()
        {
            return 'cmp_user';
        }
    
        //第一个参数 关联表 表名 第二个参数1 关联表 ID 参数2为主表 role_id 外键
        public  function getRole()
        {
            return $this->hasOne(CmpRole::className(),['id'=>'role_id'])->asArray();
        }
    }

    使用

     // with()使用 参数 cmpUser 为 modules定义的方法 getCmpUser();区分大小写
            $withDate = CmpRole::find()->with('cmpUser')->asArray()->all();

     这样就能显示多表数据了

  • 相关阅读:
    phpcms 的getcache()函数
    git 上配置公钥
    linux 上git安装
    mac上php的扩展yaf安装
    Linux常用指令---grep(搜索过滤)
    mac virtualbox+vagrant安装
    nginx配置location及rewrite规则重写
    mac php环境搭建
    nginx.pid丢失问题
    git操作教程详解
  • 原文地址:https://www.cnblogs.com/dzcici/p/12449415.html
Copyright © 2011-2022 走看看