zoukankan      html  css  js  c++  java
  • 关于yii的relations

    yii的relations里self::BELONGS_TO默认是用当前指定的键跟关联表的主键进行join,例如:

    return array(
    'reply' => array(self::BELONGS_TO, 'BookPostReply', 'postid'),
    );

    默认生成的sql是 on id = postid,id是BookPostReply的主键。
    但今天我遇到的需求却是需要生成 on BookPostReply.postid = t.postid,不去关联主键,而且关联其中一个字段的值,怎么搞都搞不定,论坛也翻了个遍,不得不说,yii的论坛搜索功能真的很烂,每次用都要从一 堆的内容里过滤信息,还不见的能找到自己想要的,而且手册也比较简单,对这些东西没有做比较深入的解答。

    后来无意中看到有个on的属性,刚好跟sql里的on一样,于是抱着试试的想法,在配置里加了上去

    return array(
    'reply' => array(self::BELONGS_TO, 'BookPostReply', 'postid', 'on' => 't.postid=reply.postid'),
    );

    看调试信息里的SQL语句,发现yii生成了一条 on id = postid and t.postid=reply.postid 这样的语句,看到这就已经明白这个东西的作用了,于是将postid清空,改成如下:

    return array(
    'reply' => array(self::BELONGS_TO, 'BookPostReply', '', 'on' => 't.postid=reply.postid'),
    );

    终于将默认的on重置掉了^_^,yii确实很灵活,可惜一直没有一份详细的开发手册,导致很多时候要走不少弯路,希望以后手册能够更加完善起来吧!

  • 相关阅读:
    转:桩模块 stub 和驱动模块 driver
    音频中PCM的概念
    pthread_exit
    为什么匿名内部类参数必须为final类型
    原创:同步与异步、阻塞与非阻塞
    (转)C语言中长度为0的数组
    编码问题
    查看Android程序使用内存
    C++中class与struct的区别(struct的类型名同时可以作为变量名)
    asn1c
  • 原文地址:https://www.cnblogs.com/Alight/p/2866423.html
Copyright © 2011-2022 走看看