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
相关文章:
c# await 一个已经完成的Task会发生什么
电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略
如何快速搭建高效服务器建站系统?
如何通过西部数码建站助手快速创建专业网站?
北京的网站制作公司有哪些,哪个视频网站最好?
七夕网站制作视频,七夕大促活动怎么报名?
定制建站模板如何实现SEO优化与智能系统配置?18字教程
上海网站制作网页,上海本地的生活网站有哪些?最好包括生活的各个方面的?
如何在阿里云虚拟主机上快速搭建个人网站?
招贴海报怎么做,什么是海报招贴?
c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】
建站之星图片链接生成指南:自助建站与智能设计教程
建站10G流量真的够用吗?如何应对访问高峰?
网站制作员失业,怎样查看自己网站的注册者?
做企业网站制作流程,企业网站制作基本流程有哪些?
在线ppt制作网站有哪些,请推荐几个好的课件下载的网站?
如何在宝塔面板创建新站点?
如何将凡科建站内容保存为本地文件?
如何选购建站域名与空间?自助平台全解析
个人摄影网站制作流程,摄影爱好者都去什么网站?
济南网站建设制作公司,室内设计网站一般都有哪些功能?
建站之星安装失败:服务器环境不兼容?
专业公司网站制作公司,用什么语言做企业网站比较好?
如何在企业微信快速生成手机电脑官网?
建站上市公司网站建设方案与SEO优化服务定制指南
香港服务器建站指南:免备案优势与SEO优化技巧全解析
网站插件制作软件免费下载,网页视频怎么下到本地插件?
魔方云NAT建站如何实现端口转发?
如何通过西部建站助手安装IIS服务器?
mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?
如何在IIS中新建站点并配置端口与IP地址?
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
如何自定义建站之星模板颜色并下载新样式?
如何基于PHP生成高效IDC网络公司建站源码?
小型网站建站如何选择虚拟主机?
一键网站制作软件,义乌购一件代发流程?
如何在阿里云香港服务器快速搭建网站?
建站主机选购指南:核心配置优化与品牌推荐方案
制作网站外包平台,自动化接单网站有哪些?
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
简单实现Android验证码
如何在腾讯云服务器上快速搭建个人网站?
成都网站制作公司哪家好,四川省职工服务网是做什么用?
建站之星如何实现网站加密操作?
如何用腾讯建站主机快速创建免费网站?
微网站制作教程,我微信里的网站怎么才能复制到浏览器里?
网站制作公司排行榜,抖音怎样做个人官方网站
哈尔滨网站建设策划,哈尔滨电工证查询网站?
*请认真填写需求信息,我们会在24小时内与您取得联系。