思路:

  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. npm、webpack、vue-cli 快速上手

    npm+webpack+vue-cli快速上手   Node.js   npm 什么是Node.js  以及npm 简单的来说 Node.js 就是运行在服务端的JavaScript,基于Chrome ...

  2. Spring Security在标准登录表单中添加一个额外的字段

    概述 在本文中,我们将通过向标准登录表单添加额外字段来实现Spring Security的自定义身份验证方案. 我们将重点关注两种不同的方法,以展示框架的多功能性以及我们可以使用它的灵活方式. 我们的 ...

  3. h5点击区域和实际区域对不上

    点击区域和实际区域对不上 然后点击后触发的其实是上面的区域,会导致事件触发错误

  4. 使用gulp-uncss精简css,去除冗余代码

    写html页面的时候,多修改几次就会出现很多无用的css代码,下面使用gulp-uncss来精简css文件,去掉没用的css代码 1.首先找个目录创建一个gulp项目在命令行输入:npm init   ...

  5. 9、调整数组顺序使奇数位于偶数前面------------>剑指offer系列

    题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变. 思路 首先寻找第一个 ...

  6. ABAP日期和时间运算

    "日期运算是以天为单位,时间运算以秒为单位.DATA:date1 TYPE d. "服务器当前日期date1 = sy-datum.WRITE: / date1 . "2 ...

  7. angularjs实现导航菜单切换高亮

    <ul> <li ng-repeat="(index, item) in headerList"> <a ui-sref="{{item.h ...

  8. ubuntu server 16.04安装GPU服务器

    1 Ubuntu16.04 系统安装过程中,需要勾选openssh-server 方便远程连接 2 必须安装gcc 与g++ 3 安装显卡驱动 NVIDIA-Linux-x86_64-367.57.r ...

  9. 【LeetCode】2.Add Two Numbers 链表数相加

    题目: You are given two linked lists representing two non-negative numbers. The digits are stored in r ...

  10. UESTC 1307 WINDY数 (数位DP,基础)

    题意: windy定义了一种windy数.不含前导零且相邻两个数字之差至少为2的正整数被称为windy数.windy想知道,在A和B之间,包括A和B,总共有多少个windy数? 思路: 就是给连续的两 ...