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

Posted HaimaBlog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 app\\models;

use yii\\db\\ActiveRecord;

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();

    }
}

以上是关于21.Yii2.0框架多表关联一对多查询之性能优化--模型的使用的主要内容,如果未能解决你的问题,请参考以下文章

第六模块:WEB框架开发 第1章·Django框架开发50~100

spring Data jpa 一对多关联 动态查询怎么写

mybatis xml数据层框架应用--Mybatis关系映射之一对多关系映射

mybatis 多表查询 之一对一

MyBatis关于多表联查 关联关系之一--------一对多(单条sql语句查询)

数据库多表查询优化思路之笛卡儿积