Heim > Artikel > Backend-Entwicklung > Yii2.0 verwendet zum Teilen die gemeinsame AR-Tabellenabfragemethode
Es gibt zwei Möglichkeiten, gemeinsame Tabellenabfragen in Yii2.0 zu verwenden, und die zweite ist die Verwendung von Active Record. In diesem Artikel wird hauptsächlich über den Abfrage-Builder gesprochen Yii2.0 verwendet Beispiele für gemeinsame Tabellenabfragen. Der Herausgeber findet es ziemlich gut. Jetzt werde ich es mit Ihnen teilen und als Referenz geben. Folgen wir dem Herausgeber, um einen Blick darauf zu werfen. Ich hoffe, es kann allen helfen.
Zwei Tabellen
{{%article}} und {{%article_class}}
{{%article}} .article_class-Assoziation{ { %article_class}}.id
1. Um AR für zugehörige Abfragen zu verwenden, erstellen Sie zunächst eine Zuordnung in den Modellen {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. Wird in Controllern {ArticleController} verwendet,
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. Wird in der Ansicht {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'], ], ]); ?>
Das obige ist der detaillierte Inhalt vonYii2.0 verwendet zum Teilen die gemeinsame AR-Tabellenabfragemethode. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!