思路:

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

控制器里

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

模型里

<?php
namespace app\models; use yii\db\ActiveRecord; class Article extends ActiveRecord
{
public function getCategory()
{ //方法一:会自动调用one()方法 可以省略one()
$category = $this->hasOne(Category::className(),['cid'=>'article_id'])->asArray()->one();
return $category; //方法二:
// $category = $this->hasOne(Category::className(),['cid'=>'article_id']);
// return $category;
}
}

方法一打印结果:

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

方法二打印结果:

D:\xampp\htdocs\yii\helper\function.php:26:
array (size=9)
0 =>
array (size=5)
'article_id' => string '1' (length=1)
'article_title' => string '刘强东被捕照曝光 美警署:调查期可自由出入境 ' (length=63)
'num' => string '0' (length=1)
'cate_id' => string '1' (length=1)
'category' =>
array (size=2)
'cid' => string '1' (length=1)
'c_name' => string '新闻' (length=6)
1 =>
array (size=5)
'article_id' => string '2' (length=1)
'article_title' => string '《唐诗三百案》看2集入坑,看6集停不下来……' (length=62)
'num' => string '0' (length=1)
'cate_id' => string '1' (length=1)
'category' =>
array (size=2)
'cid' => string '2' (length=1)
'c_name' => string '娱乐' (length=6)
2 =>
array (size=5)
'article_id' => string '3' (length=1)
'article_title' => string '买数据?官媒评蔡徐坤新歌转发一亿次“不简单”' (length=66)
'num' => string '0' (length=1)
'cate_id' => string '1' (length=1)
'category' => null
3 =>
array (size=5)
'article_id' => string '4' (length=1)
'article_title' => string '买数据?官媒评蔡徐坤新歌转发一亿次“不简单”' (length=66)
'num' => string '0' (length=1)
'cate_id' => string '1' (length=1)
'category' => null
4 =>
array (size=5)
'article_id' => string '5' (length=1)
'article_title' => string '蒋勤勤生日晒二胎儿子照 陈建斌特意赶回为她庆生' (length=67)
'num' => string '0' (length=1)
'cate_id' => string '1' (length=1)
'category' => null
5 =>
array (size=5)
'article_id' => string '6' (length=1)
'article_title' => string 'php的发展前景怎样' (length=24)
'num' => string '8' (length=1)
'cate_id' => string '2' (length=1)
'category' => null
6 =>
array (size=5)
'article_id' => string '7' (length=1)
'article_title' => string '67岁宋春丽与聂远出新戏,满头花发让人心疼,面容慈祥豪爽依旧!' (length=89)
'num' => string '12' (length=2)
'cate_id' => string '2' (length=1)
'category' => null
7 =>
array (size=5)
'article_id' => string '8' (length=1)
'article_title' => string '知微又涨粉啦!《天盛长歌》小衣衣、楚王和金狮王子你会选谁?' (length=87)
'num' => string '18' (length=2)
'cate_id' => string '2' (length=1)
'category' => null
8 =>
array (size=5)
'article_id' => string '9' (length=1)
'article_title' => string '刘亦菲穿旗袍带仙气,赵丽颖穿旗袍优雅,她穿旗袍最有民国范' (length=84)
'num' => string '14' (length=2)
'cate_id' => string '2' (length=1)
'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. VS 小插件 之 编辑器背景图片

    一.引言 不知道标题的名字我描述的是否正确哈,其实就是用VS写代码的时候,背景一般都是纯白 或者 纯黑(看主题而定),那么我前段时间发现 只需要一个VS插件,居然可以给VS设置背景图片,甚至还可以循环 ...

  2. js和jq中常见的各种位置距离之offset()和position()的区别(二)

    offset()返回的是相对于当前文档的坐标,position()返回的是相对于其定位的祖辈元素的坐标. 使用position()方法时事实上是把该元素当绝对定位来处理,获取的是该元素相当于最近的一个 ...

  3. linux yum 安装

    ################## http://rpm.pbone.net/ 下载下来的包放到本地yum源中,然后在这个目录下面重新生成依赖关系就可以使用yum包来完成安装了 tt 1. 生成依赖 ...

  4. (转)企业配置sudo命令用户行为日志审计

    原文:https://www.cnblogs.com/Csir/p/6403830.html?utm_source=itdadao&utm_medium=referral 第15章 企业配置s ...

  5. 宝塔面板安装的mysql5.5用命令行kill -9后启动不了

    1.查看mysql版本方法一:status;方法二:select version(); 2.Mysql启动.停止.重启常用命令a.启动方式1.使用 service 启动:[root@localhost ...

  6. 关于C#解析shp文件

    最近在做项目时,要求可以上传shp文件到指定的地图中,地图开发使用的arcgisapi,网上找了好多解析shp文件的js,但都不是太理想,直到群里的小伙伴提到Gdal 首先,到GDAL官网下载自己使用 ...

  7. IO(字节流、字符流)

      第1章 字节流 在前面的学习过程中,我们一直都是在操作文件或者文件夹,并没有给文件中写任何数据.现在我们就要开始给文件中写数据,或者读取文件中的数据. 1.1 字节输出流OutputStream ...

  8. vue使用uglifyjs-webpack-plugin后打包报错

    楼主最新对已做项目进行打包优化,配置了打包环境下去除console.log语句插件---使用uglifyjs-webpack-plugin具体代码如下 npm install uglifyjs-web ...

  9. .Net平台互操作技术:03. 技术验证

    上面两篇文章分别介绍了.Net平台互操作技术面临的问题,并重点介绍了通过P/Invoke调用Native C++类库的技术实现.光说不做是假把式,本文笔者将设计实验来证明P/Invoke调用技术的可行 ...

  10. 用户登录保存数据实例(慕课笔记 使用SharedPreferences保存用户名)

    学习视频之后自己操作时的笔记. 0.视频地址:http://www.imooc.com/video/3265 1.功能预览: 说明:1)输入错误用户名和密码,点击登录,弹出提示框“禁止登录”: 2)输 ...