`
stevecj
  • 浏览: 104408 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

转:关于yii的relations

    博客分类:
  • PHP
SQL 
阅读更多

关于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确实很灵活,可惜一直没有一份详细的开发手册,导致很多时候要走不少弯路,希望以后手册能够更加完善起来吧!

分享到:
评论

相关推荐

    awesome-yii2:Yii2干货集

    yii:Yii学习资料和新闻 :用Yii开发的项目案例,包括开源不开源的,包括Yii1和Yii2,至今有300多个案例了。 :forecho开的摘要小专栏,欢迎有需要的朋友订阅。 Docs文档 (每次github有提交时15分钟后自动更新比...

    yii2-buku:关于 Yii2 的书籍

    Yii2学习模块 从安装composer和git开始练习,一步一步学习Yii2 :grinning_face: . 我们还将在 github 上了解一些有关fork 。 我们用于学习的存储库是存储库 目录

    yii-fluentd-logroute:用于 Yii1 的 Fluentd 的日志路由器

    Fluentd for Yii 1.1.* 的日志路由如何使用> 在应用程序内正常日志记录(yii 可以通过在消息中附加字符串来添加跟踪信息) Yii :: log ( 'test-message' , CLogger :: LEVEL_INFO , 'fluent-log' );//{"level":"info...

    rbac:基于yii2的后台管理系统

    rbac:基于yii2的后台管理系统

    yiiframework官方最新版,包括源程序、api、文档

    Yii提供了今日Web 2.0应用开发所需要的几乎一切功能。Yii是最有效率的PHP框架之一。 Yii几乎拥有了当今Web 2.0应用发展的全部特性。下面是这些特性的一个简短的清单。  1、模型-视图-控制器(MVC)设计模式:Yii在...

    yii-yii2-bridge:在 Yii 1 应用程序中使用 Yii 2 小部件

    Yii <- Yii 2 桥 在遗留的 Yii 1 应用程序中使用 Yii 2 小部件。 要求 Yii 1.1.15 应用 安装 安装此扩展的首选方法是通过 。 要么跑 php composer.phar require --prefer-dist "neam/yii-yii2-bridge" "*" 或...

    php框架:ThinkPHP+YII打包下载

    php框架:ThinkPHP+YII两个框架,想要开发php网站的可以下载使用。

    yii2-thai-year-formatter:转换Yii框架(Yii 2)的泰国日期值。

    ThaiYearFormatter 转换日期这是Yii框架的泰语年(Yii 2)。 ThaiYearFormatter 必须在php.ini中启用php扩展名intl。 打开php.ini文件并按如下所示启用它。 extension=php_intl.dll[intl]intl.default_locale =th_TH...

    Messenger:与Yii2上的WebSockets支持聊天,并能够从Youtube下载图像和嵌入视频

    信使 转储位于此处-/ Messenger / dump 创建具有权限777的文件夹/ Messenger / Web /存储 一定! 您需要运行以下命令: php yii messenger

    yii2:PHP yii2

    yii2 PHP yii2

    yii2-weui:为yii2封装weui组件

    yii2-weuiWeUI for Yii 2为Yii2封装weui组件,让微信开发更简单本组件为车卡通微信会员管理系统而做,]]authorfufudaoanu-zhangnuowei000InstallationInstall With ComposerThe preferred way to install this ...

    yii-search:用于Yii2的elasticsearch

    yii-搜索 用于Yii2的elasticsearch

    yii2-fullcalendar:fullcalendar yii2小部件

    yii2-fullcalendar fullcalendar yii2小部件安装安装此扩展的首选方法是通过 。 无论运行 php composer.phar require --prefer-dist tejrajs/yii2-fullcalendar "dev-master"或添加 "tejrajs/yii2-fullcalendar": ...

    yii2swoole让yii2运行在swoole上

    yii2 swoole:让yii2运行在swoole上 , 运行在swoole上的yii2是运行在php-fpm上yii2的5倍以上

    yii-qa:基于Yii2实现的问答系统

    Yii-QA简介(此项目目前已不再维护)感谢选择Yii-QA,基于框架基础实现的问答程序。 #意识到目前的急性时间有限,无法管理太多的额外项目,我准备合并现有手上的项目,集成在一个项目中,感谢支持!!!!!!!请关注:...

    yii-basic:《 yii框架实战》教程

    yii-basic 《 yii框架实战》教程源码 《 yii框架实战》教程地址: ://www.voidking.com/2017/05/18/deve-yii-in-action/ 安装 原始码 git clone https://github.com/voidking/yii-basic.git basic 数据库 利用...

    yii2-icons:在Yii Framework 2.0中易于使用的图标框架集

    yii2-icons 此扩展提供了一种简单的方法来设置各种图标框架以与Yii Framework 2.0一起使用。 当前支持最流行和免费的图标框架。 将来可以根据需求和反馈来扩展此列表。:Krajee将其作为CSS图标提供的Unicode符号集合...

    yii2-builder:为Yii Framework 2.0轻松构建表单(单个或表格)

    yii2-builder 表单构建器扩展,可让您为Yii Framework 2.0构建单视图和多视图/表格形式。 该扩展包含以下小部件: 形式表格网格表格形式注意:检查以了解此扩展程序的要求和依赖性。最新发布有关更改各个版本的详细...

    yii2-rbac-cached:为 yii2 RBAC 缓存

    yii2-rbac-缓存 为 yii2 RBAC 缓存 安装 安装此扩展的首选方法是通过 。 要么跑 php composer.phar require "letyii/yii2-rbac-cached" "dev-master" 或添加 " letyii/yii2-rbac-cached " : " dev-master " 到...

    yii2-shop:基于Yii2制作的电子商城

    基于Yii2制作的电子商城,做了挺多优化,支持PHP7. :rocket: 基于PHP7加速Yii2,使用异步以及缓存,第三方cdn来加速页面速度,让...Yii 2.0.12 MySQL >=5.5 nginx 用于网址代理解析 ElasticSearch 2.4.1 Redis 3.2.10

Global site tag (gtag.js) - Google Analytics