YII 两表间和两模块间的数据库查询

这段时间在学YII,虽然Yii做网页挺方便,它的作用也不止这么简单,但对于刚弄的新手来说,要弄会它实在太难,想完成某个功能光想找文档就能让你“疯狂”,,,好,废话不多说,下面讲下标题要实现的两个功能:(PS:不知是不是太简单而没人看得起还是怎么,想要实现在网上找文档找到吐都没找到。。)我新建了post模块和group模块,有3张表(都在同一个数据库的),post表和posttype表放在post模块里,group表放在group模块里。

好,首先,实现post去查询postType里的数据:

1.在PostController控制器里写入这段函数

然后就可以在post模块views的_from里的dropDownList下拉框方法代码中调用这段函数

然后就可以看到效果了

说下CHtml::listData(PostType::model()->findAll(),’id’,’name’);方法:findAll会查询postType表的所有数据,id是值域,会把获取到的id值存到post的postTypeid字段值里,name是文本域,可以在下拉的文本框里显示id对应的name中文。

接着,实现post去查询group模块里group表的数据:

因为group表是做group模块,所以好像post连接不到,我们要先在config文件夹下的main.php文件里

添加下面内容

然后,接着.在PostController控制器里写入这段函数

同上,在_form(其他文件里也行)文件里调用getGroupOption()

效果

虽然这两个点做起来不难,但是对于初接触YII的来说,想要找到解决办法还是很难找到的,希望可以帮到需要的人

时间: 2024-10-27 09:04:56

YII 两表间和两模块间的数据库查询的相关文章

oracle两表中的两列进行模糊匹配的方法

SELECT T2.列名,T1.列名  FROM 主表 T1, 匹配表 T2    WHERE  T1.匹配列  LIKE CONCAT('%',concat(T2.匹配列,'%')); 注意:  a:需要在进行模糊匹配的列数据前后加上%  b:通过主表对匹配表进行like查询 原文地址:https://www.cnblogs.com/husam/p/10448568.html

mysql数据库查询之对应库对应表中的注释信息查询以及加字段查询

select * from information_schema.columns where table_schema = 'db' #表所在数据库 and table_name = 'tablename' ; #你要查的表 除了上述方法外还可以加上字段查询 使用mysql -uyourroot -pyourpassword 登录数据库 再使用use database:选中数据库 就可以在mysql查询表中包含有该字段中的行对应的注释信息 其中'WH_BU_ORDER_RELATION'为数据库

【转】初探linux内核编程,参数传递以及模块间函数调用

http://www.cnblogs.com/yuuyuu/p/5119891.html ZC: 疑问,最后的 模块kernel_mod 调用 模块kernel_fun的函数fun,是成功的OK的.但是 模块kernel_mod 怎么就知道 它调用的就是 模块kernel_fun的fun函数?如果 又有一个 模块kernel_fun01它也导出了fun函数,此时 模块kernel_mod调用fun的话调用的是哪一个模块的fun函数? (ZC: 测试了一下,两个模块 有相同的导出函数的话,在 加载

解决模块间耦合的设计模式

大家都知道,模块间的耦合不利于代码的可读性和可维护性,好的代码一般都会按功能或者别的将代码模块化,那么模块化的代码之间怎么通信呢?下面来介绍两种用于模块间解耦的设计模式. 观察者模式 概念介绍 观察者模式也被称作消息机制或发布-订阅者模式,为了解决主题对象与观察者之间功能的耦合. 观察者模式有一个消息容器,和三个方法,分别是订阅信息方法.取消订阅的信息方法.发送订阅的消息方法. 例如: /* * 将观察者放在闭包中,当页面加载就立即执行 */ const Observer = (function

ios业务模块间互相跳转的解耦方案

*此文章需有一点runtime的知识,假设你不了解runtime,<高速理解Runtime of Objective-C>: http://mp.weixin.qq.com/s?__biz=MzIxNDI0OTAzOQ==&mid=403005635&idx=1&sn=71375cb0dee51487c90087d488ff59fe#rd 问题: 一个app通常由很多个模块组成,全部模块之间免不了会相互调用,比如一个读书管理软件,可能会有书架.用户信息.图书详情等等模块

在Prism 框架中,实现主程序与模块间 UI 的通信

背景: 在模块的UI中包含 TreeView 控件,在该树形控件的每一节点前面定义了一个复选框,如图 需求: 在两个不同的应用程序中使用该控件,而它在不同应用程序中的外观则并不一致,按照本例,即一个显示复选框,一个不显示. 问题: 解决该问题的一个难处在于,Prism框架本身的设计原则——此 View 会被添加到主程序的 Shell 的 Region 中,所以在主程序中不能直接来控制该 View 的属性及其逻辑. 思路: 利用 EventAggregator 使得主程序与模块间进行通信,从而间接

关于项目模块间交互的一个设计思路

1.背景 某API项目,项目天然地按业务分为了不同的包,那么每个包都独立处理自己的业务逻辑,独立接管数据源,独立地向外部提供数据,彼此基本互不通信. 不过,随着需求的增多和业务的堆积,项目的复杂度越来越大,但是每个独立模块却又不足以独立出去成为一个单独的项目,而模块间又因业务需要开始发生交互的时候,问题来了. 2.问题描述 由于模块间的数据交互,按照Spring的套路,是可以直接把容器接管的对象注入到你需要的地方去的,那么一旦你开始问其他模块要数据,开始要命了.如上图,如果模块3问模块2和模块4

初探linux内核编程,参数传递以及模块间函数调用

一.前言                                  我们一起从3个小例子来体验一下linux内核编程.如下: 1.内核编程之hello world 2.模块参数传递 3.模块间函数调用 二.准备工作                           首先,在你的linux系统上面安装linux头文件,debian系列: 1 $:sudo apt-get install linux-headers-`uname -r` 安装后,在你的/lib/modules/目录下有你刚

yii2.0AR两表联查

首先,建两个关联表. 表一 -- Table structure for article -- ---------------------------- DROP TABLE IF EXISTS `article`; CREATE TABLE `article` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增id', `new` text, `t_id` int(11) DEFAULT NULL COMMENT '关联id', PRIMARY