Yii2.0中使用联表查询有两种办法,第一种是查询构建器(Query Builder),第二种使用活动记录(Active Record),中文网对查询构建器讲的很详细,AR则说的很坑,下面贴出自己实践的方法,以供参考。

两个表
{{%article}} 和 {{%article_class}}
{{%article}} .article_class关联{{%article_class}}.id
1、要使用AR做关联查询,首先在models {Article} 中创建关联:
class Article extends \yii\db\ActiveRecord
{
//这里声明被关联字段
public $class_name;
/**
* @inheritdoc
*/
public static function tableName()
{
return '{{%article}}';
}
...
//关联 mysite_article_class 表
public function getArticleClass(){
/**
* 第一个参数为要关联的子表模型类名称,
* 第二个参数指定通过子表的 id 去关联主表的 article_class 字段
*/
return $this->hasMany(ArticleClass::className(), ['id' => 'article_class']);
}
}
2、在controllers {ArticleController}中使用,
public function actionIndex()
{
$article = new Article();
if(Yii::$app->request->get('class')){
$query = Article::find()
->joinWith('articleClass')
->select(['{{%article}}.*,{{%article_class}}.class_name'])
->where(['article_class' => Yii::$app->request->get('class')]);
$dataProvider = new ActiveDataProvider([
'query' => $query,
]);
}else{
$query = Article::find()
->joinWith('articleClass')
->select(['{{%article}}.*,{{%article_class}}.class_name']);
$dataProvider = new ActiveDataProvider([
'query' => $query,
]);
}
return $this->render('index', [
'dataProvider' => $dataProvider,
'model' => $article,
]);
}
3、在view {GridView}中使用
<?= GridView::widget([
'dataProvider' => $dataProvider,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'id',
//'article_content:ntext',
[
'value'=>'class_name',
'label'=>'文章分类',
],
'article_title',
'article_addtime:datetime',
// 'article_updatetime:datetime',
// 'article_author',
['class' => 'yii\grid\ActionColumn'],
],
]); ?>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# Yii AR 联表查询
# yii2.0联表查询
# yii2.0 两表联查
# 第一个
# 中文网
# 第二个
# 有两种
# 贴出
# 第二种
# 要使
# 第一种
# 大家多多
# 以供
# 文章分类
# 则说
# extends
# brush
# php
# pre
# class
# Article
# yii
# static
相关文章:
如何用VPS主机快速搭建个人网站?
较简单的网站制作软件有哪些,手机版网页制作用什么软件?
如何安全更换建站之星模板并保留数据?
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
如何通过WDCP绑定主域名及创建子域名站点?
建站之星如何一键生成手机站?
网站制作公司排行榜,抖音怎样做个人官方网站
魔毅自助建站系统:模板定制与SEO优化一键生成指南
如何在云主机上快速搭建多站点网站?
建站主机核心功能解析:服务器选择与网站搭建流程指南
在线制作视频的网站有哪些,电脑如何制作视频短片?
Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递
如何在阿里云ECS服务器部署织梦CMS网站?
小型网站建站如何选择虚拟主机?
详解jQuery停止动画——stop()方法的使用
微课制作网站有哪些,微课网怎么进?
深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?
焦点电影公司作品,电影焦点结局是什么?
广平建站公司哪家专业可靠?如何选择?
网站制作需要会哪些技术,建立一个网站要花费多少?
如何配置FTP站点权限与安全设置?
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
建站之星安装后如何自定义网站颜色与字体?
免费制作海报的网站,哪位做平面的朋友告诉我用什么软件做海报比较好?ps还是cd还是ai这几个软件我都会些我是做网页的?
如何用腾讯建站主机快速创建免费网站?
高防服务器租用指南:配置选择与快速部署攻略
网站建设制作、微信公众号,公明人民医院怎么在网上预约?
网站制作软件有哪些,制图软件有哪些?
免费ppt制作网站,有没有值得推荐的免费PPT网站?
小建面朝正北,A点实际方位是否存在偏差?
如何构建满足综合性能需求的优质建站方案?
重庆市网站制作公司,重庆招聘网站哪个好?
建站主机如何选?高性价比方案全解析
c# 在ASP.NET Core中管理和取消后台任务
javascript中对象的定义、使用以及对象和原型链操作小结
高端建站如何打造兼具美学与转化的品牌官网?
如何快速搭建个人网站并优化SEO?
网站建设设计制作营销公司南阳,如何策划设计和建设网站?
如何配置IIS站点权限与局域网访问?
昆明网站制作哪家好,昆明公租房申请网上登录入口?
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
javascript中的try catch异常捕获机制用法分析
常州企业建站如何选择最佳模板?
子杰智能建站系统|零代码开发与AI生成SEO优化指南
如何通过二级域名建站提升品牌影响力?
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
php8.4新语法match怎么用_php8.4match表达式替代switch【方法】
企业微网站怎么做,公司网站和公众号有什么区别?
新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?
*请认真填写需求信息,我们会在24小时内与您取得联系。