思路:

  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. ES6新特性使用小结(五)

    十二.class 与 extends ①.类的基本定义和生成实例 { class Parent{ constructor(name='Lain'){ //定义构造函数 this.name = name ...

  2. [软件工程基础]Alpha 阶段事后分析

    设想和目标 1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 帮助选修物理实验的学生撰写实验报告,计算实验数据,验证计算结果,并提供一个讨论的平台. 全体成员认 ...

  3. Codeforces Round #529 -C- Powers Of Two(二进制拆分)

    A positive integer xx is called a power of two if it can be represented as x=2yx=2y, where yy is a n ...

  4. Core中使用Razor视图引擎渲染视图为字符串 阅读目录

    Core中使用Razor视图引擎渲染视图为字符串 } <!DOCTYPE html> <html> <head> <title>Render view ...

  5. 053 Maximum Subarray 最大子序和

    给定一个序列(至少含有 1 个数),从该序列中寻找一个连续的子序列,使得子序列的和最大.例如,给定序列 [-2,1,-3,4,-1,2,1,-5,4],连续子序列 [4,-1,2,1] 的和最大,为 ...

  6. 洛谷P1081 开车旅行70分

    https://www.luogu.org/problem/show?pid=1081 太遗憾了明明写出来了,却把最小值初始值弄小了,从第二个点开始就不可能对了.70分! #include<io ...

  7. EF 记录执行的sql语句

    最近做了个中等的项目,数据不会很多,开发时间比较紧迫,所以用了EF的框架. 在使用过程中,发现有时候执行的结果不如预期,想看看执行的sql语句为何,遍查找资料,在网上找到了相关辅助类,拿来使用,部署到 ...

  8. 初学Android,创建,启动,停止Service(五十八)

    Service跟Windows系统里的服务概念差不多,都在后台执行,它跟Activity的最大区别就是,它是无界面的 开发Service与开发Activity的步骤类似 1.定义一个继承Service ...

  9. 常用API(Object、String、StringBuffer、用户登陆注册)

    常用API 今日内容介绍 u Object u String u StringBuilder 第1章 Java的API及Object类 在以前的学习过程中,我们都在学习对象基本特征.对象的使用以及对象 ...

  10. <context:property-placeholder>标签实现参数剥离

    <context:property-placeholder>标签提供了一种优雅的外在化参数配置的方式(可以是键值对的形式保存在.properties文件中),不过该标签在spring配置文 ...