zoukankan      html  css  js  c++  java
  • YII 关联表查询

    AR模型中可以通过relations()方法建立关系

    class B
    public function relations() { return array( 'a'=>array(self::BELONGS_TO, 'A', 'id') ); }

    这样一对一关系就建立好了。

    $b = B::model()->find($criteria);
    $a = $b->a;

    第二步是利用一个lazyFinder重新查询结构赋值给$a;

    四种关系:

    关系定义例子
    BELONGS_TO A和B的关系是一对多,那么B属于A Post属于User
    HAS_MANY A和B之间的关系是一对多,那么A有多个B User有多个Post
    HAS_ONE 这是HAS_MANY的一种特殊情况,A至多有一个B User至多有一个Profile
    MANY_MANY 这个对应多对多的情况,在AR里会将多对多以BELONGS_TO和HAS_MANY的组合来解释 Post和Category

    在AR中通过重写CActiveRecord类的relations()方法来申明关系;这个方法返回一个关系配置的数组;一个数组无素代表一个单独的关系,格式如下:

    'VarName'=>array('RelationType','ClassName','ForeignKey', ...additional options)

    Var Name 关系名
    Relation Type 四种关系:self::BELONGS_TO, self::HAS_ONE, self::HAS_MANY, self::MANY_MANY
    Class Name 代表当前AR类要关联的那个AR类名
    Foreign Key 实现关系的外键, 有可能有多个,即列名

    refer:http://blog.csdn.net/yjj1s/article/details/6885276

  • 相关阅读:
    win7同时安装python2和python3
    Centos6.8安装python3.6
    Typescript的接口
    ES5中的类相关/Typescript的类相关
    Typescript介绍
    Global Interpreter Lock 全局解释器锁
    Go语言设计模式(五)
    Go语言设计模式(四)
    Go语言反射
    Go语言程序设计(三)
  • 原文地址:https://www.cnblogs.com/zaric/p/2614385.html
Copyright © 2011-2022 走看看