• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Yii2.0使用AR联表查询方法分享

php 搞代码 4年前 (2022-01-22) 10次浏览 已收录 0个评论

Yii2.0中使用联表查询有两种办法,第一种是查询构建器(Query Builder),第二种使用活动记录(Active Record),中文网对查询构建器讲的很详细,AR则说的很坑爹,本文主要和大家介绍Yii2.0使用AR联表查询实例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。

两个表

{{%article}} 和 {{%article_class}}

{{%article}} .article_class关联{{%article_class}}.id

1、要使用AR做关联查询,首先在models {Article} 中创建关联:

class Article extends \yii\db\ActiveRecord {   //这里声明被关联字段   public $cl<em style="color:transparent">本@文来源[email protected]搞@^&代*@码网(</em><q>搞代gaodaima码</q>ass_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'],   ], ]); ?>

相关推荐:

MySQL联表查询详解_MySQL

MySQL联表查询优化实际操作流程

Yii2联表查询不能查个别字段?

以上就是Yii2.0使用AR联表查询方法分享的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Yii2.0使用AR联表查询方法分享

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址