Yii表关联
来源:互联网 发布:软件开发和web 编辑:程序博客网 时间:2024/05/22 06:54
主要为了理清一下思路
首先创建表
alter table sw_xiaodi constraint d_x foreign key(`dage_id`) references `sw_dage`(`id`) #设置外键 也可以在创建表的时候给定CREATE TABLE `dage` ( `id` int(11) NOT NULL auto_increment, `name` varchar(32) default '', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 CREATE TABLE `xiaodi` ( `id` int(11) NOT NULL auto_increment, `dage_id` int(11) default NULL, `name` varchar(32) default '', PRIMARY KEY (`id`), KEY `dage_id` (`dage_id`), CONSTRAINT `xiaodi_ibfk_1` FOREIGN KEY (`dage_id`) REFERENCES `dage` (`id`) #创建表的时候给定外键;dage_id是xiaodi的外键,外键对应的键必须是主键) ENGINE=InnoDB DEFAULT CHARSET=latin1
有一点疑问,发现Yii的表关联做不做外键都能得到最终想要的结果,测试了下只要配置对就OK;目前没发现有什么不足;不过最好还是设置一下为好- 创建对应的model Dage.php与Xiaodi.php
- 配置relations:
//relations的结构如下:'VarName'=>array('RelationType', 'ClassName', 'ForeignKey', ...additional options)//'varName'这个可以自由定义的,随意给定,但为了一目了然 一般都是给定对应的表名//RelationType 四中类型,不多说//ClassName 关联model名//ForeignKey 外键//options 包含的内容就多了 with、on、select等//Dage.php'xiaodis'=>array(self::HAS_MANY, 'Xiaodi','dage_id'),//Xiaodi.php'dage'=>array(self::BELONGS_TO, 'Dage','dage_id'),
- 配置完成之后,下面就是数据的获取了随便创建一个controller
public function actionIndex () { $dage_model = Dage::model();$all = $dage_model->findAll();foreach($all as $k=>$v){print_r($v);//大哥的信息 print_r($v->xiaodis)//大哥对应的小弟信息} }
根据小弟获取大哥的信息同上;public function actionIndex () { $xiaodi_model = Xiaodi::model();$all = $xiaodi_model->findAll();foreach($all as $k=>$v){ print_r($v);//小弟的信息print_r($v->dage);//小弟对应的大哥信息} }
- 查看好多人讲配置的关系是互配的,刚测试了一下,假如我只需要查大哥还有他下面的小弟信息;而不需要去查小弟 以及相对应的大哥信息,那么在Xiaodi.php中不需要再做映射,获得信息时一样的,不知道会不会在某些其他方面有影响;再研究吧;
- 才疏学浅 有错的地方 多请指教
- Yii表关联
- Yii 多表关联relations
- Yii 多表关联relations
- yii关联
- Yii-数据库操作-多表关联
- Yii-数据库操作-多表关联
- yii中关联表的查询条件
- Yii-数据库操作-多表关联
- Yii-数据库操作-多表关联
- yii relations 两表关联查询
- yii中的关联查询
- yii数据表关联操作
- YII关联查询
- YII关联查询
- YII关联查询
- Yii 关联查询
- yii gridview 关联查询
- Yii 两表如何通过中间表关联查询
- 对象创建过程/初始化顺序
- SQL*PLUS常用命令列表
- Activity启动edittext自动弹出软键盘解决办法
- 通过一个App去调用另外一个App
- 字符串的连接
- Yii表关联
- jQuery学习笔记之三 对Dom的操作
- 浏览器还可以这么玩哈哈
- 游戏引擎大全
- ora-600 [6947]/ora-600 [kdsgrp1] 处理
- SQL语句中as的用法
- TortoiseSVN中Branching和Merging实践
- jQuery EasyUI CheckBoxTree的级联选中
- Deep Learning 训练/学习过程