• 21.Yii2.0框架多表关联一对多查询之性能优化--模型的使用


    控制器里

    功能:

    通过分类,查分类下的所有文章

        //关联查询
        public function actionRelatesearch(){
            //关联查询
            //查询方法一(查一行) 一维数组下的值是obj
            $category = Category::findOne(1); //查分类表里的数据 abj
    //        $categoryarr = $category->attributes; //获取某一行的分类结果里的对象属性,array
            //查文章里的cid等于2的 拿上面的结果 $categoryarr['cid']=2 作为本次查询的条件
    //        $article = Article::find()->asArray()->where(['cid'=>$categoryarr['cid']])->all();
    
            //这里是取的是$category下的属性articles,
            //它会调用__get方法,会自动调用getArticles()方法
            //模型里可以不加all(),会自动调用all()方法
            //这里是用category作关系主表的,所以模型要写在Category模型里
            $articles = $category->articles; //效果同上面 $category->getArticles();
            dd($articles);
        }
    

    模型里

    <?php
    namespace appmodels;
    
    use yiidbActiveRecord;
    
    class Category extends ActiveRecord
    {
        public function getArticles()
        {
    //        return $this->hasMany(Article::className(),['cate_id'=>'cid'])->asArray()->all();
            //会自动调用all()方法
            return $this->hasMany(Article::className(),['cate_id'=>'cid'])->asArray();
    
        }
    }
    
    
    [Haima的博客] http://www.cnblogs.com/haima/
  • 相关阅读:
    Mysql 之 编码问题
    Mysql Basic
    CentOS 之 Sublime text3 安装
    mapper映射
    端口号占用
    2020系统综合实验 第7次实践作业
    2020系统综合实验 第6次实践作业
    解决github打开速度慢问题
    2020系统综合实践 第5次实践作业
    2020系统综合实验 第4次实践作业
  • 原文地址:https://www.cnblogs.com/haima/p/9602426.html
Copyright © 2020-2023  润新知