关于yii2中间表关联查询
来源:互联网 发布:luarocks windows 编辑:程序博客网 时间:2024/04/27 22:28
业务需要用到这个中间表三表关联,自己写个demo实现 分享一下
test_tags表
CREATE TABLE `test_tags` (`id` int(10) NOT NULL ,`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,PRIMARY KEY (`id`))ENGINE=InnoDBDEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ciROW_FORMAT=DYNAMIC;INSERT INTO `test_tags` VALUES (1, 'php');INSERT INTO `test_tags` VALUES (2, 'IT');INSERT INTO `test_tags` VALUES (3, '编程');
test_article表
CREATE TABLE `test_article` (`id` int(10) NOT NULL AUTO_INCREMENT ,`title` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,PRIMARY KEY (`id`))ENGINE=InnoDBDEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ciAUTO_INCREMENT=1ROW_FORMAT=DYNAMIC;INSERT INTO `test_article` VALUES (1, '测试文章');
test_core表
CREATE TABLE `test_core` (`id` int(10) NOT NULL ,`tags_id` varchar(10) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,`article_id` int(10) NOT NULL ,PRIMARY KEY (`id`))ENGINE=InnoDBDEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ciROW_FORMAT=DYNAMIC;INSERT INTO `test_core` VALUES (1, '1', 1);INSERT INTO `test_core` VALUES (2, '2', 1);
在Article文章模型里设置关联
<?phpnamespace frontend\models;class Article extends \yii\db\ActiveRecord{ public static function tableName() { return 'test_article'; } public function getTags(){ return $this->hasMany(Tags::className(),['id'=>'tags_id']) ->viaTable('test_core',['article_id'=>'id']) ->asArray(); }}
跑一跑看看效果
public function actionTest(){ $model=Article::findOne(1); $data=$model->tags; var_dump($data); }
结果如下
array(2) { [0]=> array(2) { ["id"]=> string(1) "1" ["name"]=> string(3) "php" } [1]=> array(2) { ["id"]=> string(1) "2" ["name"]=> string(2) "IT" }} $data=Article::find()->joinWith('tags')->asArray()->all(); var_dump($data);结果:array(2) { [0]=> array(3) { ["id"]=> string(1) "1" ["title"]=> string(6) "标题" ["tags"]=> array(2) { [0]=> array(2) { ["id"]=> string(1) "1" ["name"]=> string(3) "php" } [1]=> array(2) { ["id"]=> string(1) "2" ["name"]=> string(2) "IT" } } } [1]=> array(3) { ["id"]=> string(1) "2" ["title"]=> string(12) "测试文章" ["tags"]=> array(2) { [0]=> array(2) { ["id"]=> string(1) "2" ["name"]=> string(2) "IT" } [1]=> array(2) { ["id"]=> string(1) "3" ["name"]=> string(6) "编程" } } }}
阅读全文
0 0
- 关于yii2中间表关联查询
- Yii2.0 中间表查询
- yii2 三表关联查询
- yii2 查询时使用中间表
- Yii2 使用九 join关联表查询
- yii2多表关联查询用法总结
- YII2 关联查询使用
- Yii2关联查询用法
- Yii2.0 关联查询
- Yii2.0 关联查询
- Yii2中多表关联查询
- yii2.0 数据库关联查询
- yii2 join 连表查询得不到关联表数据
- Yii2-多表关联查询(with、join、joinwith)示例
- yii2中gridview多表关联显示并可查询
- Yii 两表如何通过中间表关联查询
- mybatis 有中间表的一对多关联查询
- Yii2多表关联
- 大白话讲解BP算法
- 把图片保存到数据库中和从数据库中读取图片--项目琐碎总结
- Spring事务管理(详解+实例)
- 母函数入门
- IDEA:Spring boot + Mybatis 省市区级联筛选
- 关于yii2中间表关联查询
- JavaScript中两个等号(“==”)和三个等号(“===”)的区别
- c# 快速排序
- 90后员工们想要“信任”,但60后领导们只信“权谋”
- 在geth客户端调用已部署的智能合约
- Java技术常用设计模式(五)--- 观察者模式
- 防止form表单重复提交
- java 识别图片相似度及图片是否相同
- 深入浅出JMS(一)--JMS基本概念