Heim > Backend-Entwicklung > PHP-Tutorial > Yii2.0 verwendet zum Teilen die gemeinsame AR-Tabellenabfragemethode

Yii2.0 verwendet zum Teilen die gemeinsame AR-Tabellenabfragemethode

小云云
Freigeben: 2023-03-20 10:36:01
Original
1592 Leute haben es durchsucht

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']); 
  }  
   
}
Nach dem Login kopieren

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, 
    ]); 
  }
Nach dem Login kopieren

3. Wird in der Ansicht {GridView}


< verwendet 🎜>

Verwandte Empfehlungen:
<?= GridView::widget([ 
  &#39;dataProvider&#39; => $dataProvider, 
  &#39;columns&#39; => [ 
    [&#39;class&#39; => &#39;yii\grid\SerialColumn&#39;], 
    &#39;id&#39;, 
    //&#39;article_content:ntext&#39;, 
    [ 
      &#39;value&#39;=>&#39;class_name&#39;, 
      &#39;label&#39;=>&#39;文章分类&#39;, 
    ], 
    &#39;article_title&#39;, 
    &#39;article_addtime:datetime&#39;, 
    // &#39;article_updatetime:datetime&#39;, 
    // &#39;article_author&#39;, 
    [&#39;class&#39; => &#39;yii\grid\ActionColumn&#39;], 
  ], 
]); ?>
Nach dem Login kopieren


Detaillierte Erläuterung der MySQL-Verbindungstabellenabfrage_MySQL

Der tatsächliche Betriebsprozess zur Optimierung der MySQL-Verbindungstabellenabfrage

Kann die gemeinsame Tabellenabfrage von Yii2 nicht einzelne Felder prüfen?

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage