zoukankan      html  css  js  c++  java
  • 22.Yii2.0框架多表关联一对一查询之hasOne

    思路:

    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 appmodels;
    
    use yiidbActiveRecord;
    
    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:xampphtdocsyiihelperfunction.php:26:
    array (size=2)
      'cid' => string '1' (length=1)
      'c_name' => string '新闻' (length=6)
    

    方法二打印结果:

    D:xampphtdocsyiihelperfunction.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
    
    [Haima的博客] http://www.cnblogs.com/haima/
  • 相关阅读:
    向linux内核中添加外部中断驱动模块
    uboot中添加FIQ中断及相关问题
    访问内存中一个绝对地址
    ftp & tftp & vsftpd
    selinux基础
    ssh & screen
    Python自动化测试-unittest
    firewalld基础
    oracle体系结构-逻辑存储结构
    Oracle体系结构
  • 原文地址:https://www.cnblogs.com/haima/p/9632128.html
Copyright © 2011-2022 走看看