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

    }
}

posted @   HaimaBlog  阅读(808)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示