控制器里
功能:
通过分类,查分类下的所有文章
//关联查询
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();
}
}