2016-01-04 53 views
0

我的表Yii2:如何从不同的表中选择多个字段

Category 
id_category 
name 

Post 
id_post 
category_id 
title 

我的查询:

Post::find() 
->select('post.*, c.name AS catname') 
->leftJoin('category c', 'c.id_category = category_id') 
->all(); 

只显示表中的字段输出,是不是该领域catname

+0

显示相关的查询和输出的代码请 – scaisEdge

+0

“获取不明财产:app \ models \ Post :: catname” 我有“$ posts = Post :: find()...”,错误在行: “foreach($ posts as $ post){ $后> catname; } – Giest

回答

1

1)中定义名为“类别” Post模型的关系,所以:

public function getCategory() { 
    return $this->hasOne(Category::className(), ['id_category' => 'category_id']); 
} 

2)然后,当你查询的帖子,使用“与”如果你需要为每一个职位得到分类名称:

$posts = Post::find() 
->with('category') 
->all(); 

3)您可以访问类别名称:

$post->category->name