思路:

  1. 通过文章查它对应的分类信息
  2. 一对一的关系

控制器里

  1. //一对一关联查询
  2. public function actionRelatesone()
  3. {
  4. //方法一,hasOne() 用查一条文章的结果去关系查它对应的分类信息,
  5. $article = Article::findOne(1);
  6. // $category = $article->getCategory();
  7. //这里是取的是$article下的属性category,
  8. //它会调用__get方法,会自动调用getCategory()方法
  9. //模型里可以不加one(),会自动调用one()方法
  10. //这里是用article作关系主表的,所以模型要写在article模型里
  11. $category = $article->category;
  12. dd($category);
  13. // //方法二,with用多条文章的结果去关联查它对应的分类信息
  14. //这里是用article作关系主表的,所以模型要写在article模型里
  15. // $articles = Article::find()->with('category')->asArray()->all();
  16. // dd($articles);
  17. }

模型里

  1. <?php
  2. namespace app\models;
  3. use yii\db\ActiveRecord;
  4. class Article extends ActiveRecord
  5. {
  6. public function getCategory()
  7. {
  8. //方法一:会自动调用one()方法 可以省略one()
  9. $category = $this->hasOne(Category::className(),['cid'=>'article_id'])->asArray()->one();
  10. return $category;
  11. //方法二:
  12. // $category = $this->hasOne(Category::className(),['cid'=>'article_id']);
  13. // return $category;
  14. }
  15. }

方法一打印结果:

  1. D:\xampp\htdocs\yii\helper\function.php:26:
  2. array (size=2)
  3. 'cid' => string '1' (length=1)
  4. 'c_name' => string '新闻' (length=6)

方法二打印结果:

  1. D:\xampp\htdocs\yii\helper\function.php:26:
  2. array (size=9)
  3. 0 =>
  4. array (size=5)
  5. 'article_id' => string '1' (length=1)
  6. 'article_title' => string '刘强东被捕照曝光 美警署:调查期可自由出入境 ' (length=63)
  7. 'num' => string '0' (length=1)
  8. 'cate_id' => string '1' (length=1)
  9. 'category' =>
  10. array (size=2)
  11. 'cid' => string '1' (length=1)
  12. 'c_name' => string '新闻' (length=6)
  13. 1 =>
  14. array (size=5)
  15. 'article_id' => string '2' (length=1)
  16. 'article_title' => string '《唐诗三百案》看2集入坑,看6集停不下来……' (length=62)
  17. 'num' => string '0' (length=1)
  18. 'cate_id' => string '1' (length=1)
  19. 'category' =>
  20. array (size=2)
  21. 'cid' => string '2' (length=1)
  22. 'c_name' => string '娱乐' (length=6)
  23. 2 =>
  24. array (size=5)
  25. 'article_id' => string '3' (length=1)
  26. 'article_title' => string '买数据?官媒评蔡徐坤新歌转发一亿次“不简单”' (length=66)
  27. 'num' => string '0' (length=1)
  28. 'cate_id' => string '1' (length=1)
  29. 'category' => null
  30. 3 =>
  31. array (size=5)
  32. 'article_id' => string '4' (length=1)
  33. 'article_title' => string '买数据?官媒评蔡徐坤新歌转发一亿次“不简单”' (length=66)
  34. 'num' => string '0' (length=1)
  35. 'cate_id' => string '1' (length=1)
  36. 'category' => null
  37. 4 =>
  38. array (size=5)
  39. 'article_id' => string '5' (length=1)
  40. 'article_title' => string '蒋勤勤生日晒二胎儿子照 陈建斌特意赶回为她庆生' (length=67)
  41. 'num' => string '0' (length=1)
  42. 'cate_id' => string '1' (length=1)
  43. 'category' => null
  44. 5 =>
  45. array (size=5)
  46. 'article_id' => string '6' (length=1)
  47. 'article_title' => string 'php的发展前景怎样' (length=24)
  48. 'num' => string '8' (length=1)
  49. 'cate_id' => string '2' (length=1)
  50. 'category' => null
  51. 6 =>
  52. array (size=5)
  53. 'article_id' => string '7' (length=1)
  54. 'article_title' => string '67岁宋春丽与聂远出新戏,满头花发让人心疼,面容慈祥豪爽依旧!' (length=89)
  55. 'num' => string '12' (length=2)
  56. 'cate_id' => string '2' (length=1)
  57. 'category' => null
  58. 7 =>
  59. array (size=5)
  60. 'article_id' => string '8' (length=1)
  61. 'article_title' => string '知微又涨粉啦!《天盛长歌》小衣衣、楚王和金狮王子你会选谁?' (length=87)
  62. 'num' => string '18' (length=2)
  63. 'cate_id' => string '2' (length=1)
  64. 'category' => null
  65. 8 =>
  66. array (size=5)
  67. 'article_id' => string '9' (length=1)
  68. 'article_title' => string '刘亦菲穿旗袍带仙气,赵丽颖穿旗袍优雅,她穿旗袍最有民国范' (length=84)
  69. 'num' => string '14' (length=2)
  70. 'cate_id' => string '2' (length=1)
  71. 'category' => null

22.Yii2.0框架多表关联一对一查询之hasOne的更多相关文章

  1. 20.Yii2.0框架多表关联一对多查询之hasMany

    目录 新手模式 hasMany关联模式查询 新建mode层Article.php 新建mode层Category.php 新建控制器HomeController.php 新手模式 用上次的查询结果,作 ...

  2. 21.Yii2.0框架多表关联一对多查询之性能优化--模型的使用

    控制器里 功能: 通过分类,查分类下的所有文章 //关联查询 public function actionRelatesearch(){ //关联查询 //查询方法一(查一行) 一维数组下的值是obj ...

  3. mytabits表关联一对一(多对一?)

    mytabits表关联一对一(多对一?) association联合 联合元素用来处理“一对一”的关系.需要指定映射的Java实体类的属性,属性的javaType(通常MyBatis 自己会识别).对 ...

  4. yii2.0框架安装心得

    yii2.0安装心得 能够搜索到这篇文章的朋友相信是对yii框架有兴趣的,但是我不得不吐槽的是,这个安装过程确实让人头疼,接下来就让大家见证一下这个纠结的过程 根据官网的说法,安装这个框架需要用到co ...

  5. 8.Yii2.0框架控制器接收get.post数据

    8.Yii2.0框架控制器接收get.post数据 一.get传参 <?php /** * Created by Haima. * Author:Haima * QQ:228654416 * D ...

  6. hibernate的基础学习--多表关联数据查询

    Hibernate共提供4种多表关联数据查询方式 OID数据查询+OGN数据查询方式 HQL数据查询方式 QBC数据查询方式 本地SQL查询方式(hibernate很少用) 1.OID数据查询+OGN ...

  7. YII2.0使用ActiveForm表单(转)

    Controller控制器层代码 <?php namespace frontend\controllers; use frontend\models\UserForm; class UserCo ...

  8. 教你在Yii2.0框架中如何创建自定义小部件

    本教程将帮助您创建自己的自定义小部件在 yii framework 2.0.部件是可重用的模块和用于视图. 创建一个小部件,需要继承 yii\base\Widget,覆盖重写 yii\base\Wid ...

  9. oracle解决多表关联分组查询问题

    做了一个功能需要分组查询,同时查询A表分组查询的ID需要关联B表的数据,本来想两个表关联查询,但是报group by 语法不正确.所以做了以下修改. select count(*), cindexid ...

随机推荐

  1. Python模块之 sys

    # sys模块是与python解释器交互的一个接口 import sys print(sys.argv) # 命令行参数list,第一个元素是程序本身路径 # (第一个元素就是执行文件的时候,写在py ...

  2. PHP函数生成随机数

    通常情况下,当我们要生成一个随机字符串时,总是先创建一个字符池,然后用一个循环和mt_rand()或rand()生成php随机数,从字符池中随机选取字符,最后拼凑出需要的长度,代码如下: <?p ...

  3. swift 监听键盘弹出的高度

    // 监听键盘通知 NotificationCenter.default.addObserver(self, selector: #selector(ComposeViewController.key ...

  4. DOM操作(二)对元素的操作(创建,追加,删除)

    1 创建新的 HTML 元素 (节点) var divDom=document.createElement('div'); 2 添加新元素到尾部 element.appendChild(para); ...

  5. 从typeof()说起

    本文也同步发表在我的公众号“我的天空” 首先我们先思考一下,执行下列语句分别会显示什么? alert(typeof(Array)); alert(typeof(Array())); 我们进入正题! 在 ...

  6. vue-cli3脚手架的配置以及使用

    Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统,提供: 通过 @vue/cli 搭建交互式的项目脚手架. 通过 @vue/cli + @vue/cli-service-global  ...

  7. 命令方式重新签名apk

    1.(每个指令之间要有一个空格) 注:拿到一个apk后,首先删除META-INF. 1.如果你的电脑装的是jdk1.6,就用下面的命令: 打开命令符,首先直接输入: Jarsigner -keysto ...

  8. linux下杀毒工具clamav

    ClamAV 杀毒是Linux平台最受欢迎的杀毒软件,ClamAV属于免费开源产品,支持多种平台,如:Linux/Unix.MAC OS X.Windows.OpenVMS.ClamAV是基于病毒扫描 ...

  9. Windows 7, Visual Studio 2015下编译Webkit

    因工作需要,需要编译Windows版本的Webkit,中间走了不少弯路,都记录下来,供大家参考!也随时欢迎大家讨论(QQ群:345802342) 整个编译工作参考的是官方文档:https://webk ...

  10. 51nod 1489 蜥蜴和地下室

    题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 哈利喜欢玩角色扮演的电脑游戏<蜥蜴和地下室>.此时,他正在扮演一个魔术 ...