22.Yii2.0框架多表关联一对一查询之hasOne
思路:
- 通过文章查它对应的分类信息
- 一对一的关系
控制器里
//一对一关联查询
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的更多相关文章
- 20.Yii2.0框架多表关联一对多查询之hasMany
目录 新手模式 hasMany关联模式查询 新建mode层Article.php 新建mode层Category.php 新建控制器HomeController.php 新手模式 用上次的查询结果,作 ...
- 21.Yii2.0框架多表关联一对多查询之性能优化--模型的使用
控制器里 功能: 通过分类,查分类下的所有文章 //关联查询 public function actionRelatesearch(){ //关联查询 //查询方法一(查一行) 一维数组下的值是obj ...
- mytabits表关联一对一(多对一?)
mytabits表关联一对一(多对一?) association联合 联合元素用来处理“一对一”的关系.需要指定映射的Java实体类的属性,属性的javaType(通常MyBatis 自己会识别).对 ...
- yii2.0框架安装心得
yii2.0安装心得 能够搜索到这篇文章的朋友相信是对yii框架有兴趣的,但是我不得不吐槽的是,这个安装过程确实让人头疼,接下来就让大家见证一下这个纠结的过程 根据官网的说法,安装这个框架需要用到co ...
- 8.Yii2.0框架控制器接收get.post数据
8.Yii2.0框架控制器接收get.post数据 一.get传参 <?php /** * Created by Haima. * Author:Haima * QQ:228654416 * D ...
- hibernate的基础学习--多表关联数据查询
Hibernate共提供4种多表关联数据查询方式 OID数据查询+OGN数据查询方式 HQL数据查询方式 QBC数据查询方式 本地SQL查询方式(hibernate很少用) 1.OID数据查询+OGN ...
- YII2.0使用ActiveForm表单(转)
Controller控制器层代码 <?php namespace frontend\controllers; use frontend\models\UserForm; class UserCo ...
- 教你在Yii2.0框架中如何创建自定义小部件
本教程将帮助您创建自己的自定义小部件在 yii framework 2.0.部件是可重用的模块和用于视图. 创建一个小部件,需要继承 yii\base\Widget,覆盖重写 yii\base\Wid ...
- oracle解决多表关联分组查询问题
做了一个功能需要分组查询,同时查询A表分组查询的ID需要关联B表的数据,本来想两个表关联查询,但是报group by 语法不正确.所以做了以下修改. select count(*), cindexid ...
随机推荐
- VS 小插件 之 编辑器背景图片
一.引言 不知道标题的名字我描述的是否正确哈,其实就是用VS写代码的时候,背景一般都是纯白 或者 纯黑(看主题而定),那么我前段时间发现 只需要一个VS插件,居然可以给VS设置背景图片,甚至还可以循环 ...
- js和jq中常见的各种位置距离之offset()和position()的区别(二)
offset()返回的是相对于当前文档的坐标,position()返回的是相对于其定位的祖辈元素的坐标. 使用position()方法时事实上是把该元素当绝对定位来处理,获取的是该元素相当于最近的一个 ...
- linux yum 安装
################## http://rpm.pbone.net/ 下载下来的包放到本地yum源中,然后在这个目录下面重新生成依赖关系就可以使用yum包来完成安装了 tt 1. 生成依赖 ...
- (转)企业配置sudo命令用户行为日志审计
原文:https://www.cnblogs.com/Csir/p/6403830.html?utm_source=itdadao&utm_medium=referral 第15章 企业配置s ...
- 宝塔面板安装的mysql5.5用命令行kill -9后启动不了
1.查看mysql版本方法一:status;方法二:select version(); 2.Mysql启动.停止.重启常用命令a.启动方式1.使用 service 启动:[root@localhost ...
- 关于C#解析shp文件
最近在做项目时,要求可以上传shp文件到指定的地图中,地图开发使用的arcgisapi,网上找了好多解析shp文件的js,但都不是太理想,直到群里的小伙伴提到Gdal 首先,到GDAL官网下载自己使用 ...
- IO(字节流、字符流)
第1章 字节流 在前面的学习过程中,我们一直都是在操作文件或者文件夹,并没有给文件中写任何数据.现在我们就要开始给文件中写数据,或者读取文件中的数据. 1.1 字节输出流OutputStream ...
- vue使用uglifyjs-webpack-plugin后打包报错
楼主最新对已做项目进行打包优化,配置了打包环境下去除console.log语句插件---使用uglifyjs-webpack-plugin具体代码如下 npm install uglifyjs-web ...
- .Net平台互操作技术:03. 技术验证
上面两篇文章分别介绍了.Net平台互操作技术面临的问题,并重点介绍了通过P/Invoke调用Native C++类库的技术实现.光说不做是假把式,本文笔者将设计实验来证明P/Invoke调用技术的可行 ...
- 用户登录保存数据实例(慕课笔记 使用SharedPreferences保存用户名)
学习视频之后自己操作时的笔记. 0.视频地址:http://www.imooc.com/video/3265 1.功能预览: 说明:1)输入错误用户名和密码,点击登录,弹出提示框“禁止登录”: 2)输 ...