2015-06-17 19 views
5

Bir sayfa tablom var. Sayfalar da sayfalar olan ebeveynlere sahip olabilir. Tüm sayfaları parent_id = NULL ve onların 'çocukları' ile seçmek istiyorum. ... Ben Yii1 içinde bu sorunu gidermek için, ama bunu düzeltmek için bilemiyorum biliyorum 'sayfa' hatası: BuYii2'de, bir tabloya nasıl katılabilirim?

public function getPages() 
{ 
    return $this->hasMany(Page::className(), ['parent_id' => 'id']); 
} 

çalıştığınızda Ama 1066 değil benzersiz tablo/takma olsun olsun Yii2'de.

cevap

2

Tablo adını takma adlara ihtiyacınız var.

$this->hasMany(Category::className(), ['parent_id' => 'id'])->from(['cat' => 'category']); 

açıklamalara bakınız here.

3

Bunu, notlarım için ebeveyn-çocuk ilişkisine sahip olduğum notlarım modülü için yaptım.

bu adımları izleyin: modeliniz dosyasında

  1. katılmak kendini bu kodu yazmak. Tablo adını takma gereği duyuyoruz. Burada 'ebeveyn' bir takma addır. parent_id alanı boş değilse görüşünüz dosyasında

    public function getParent() { 
        return $this->hasOne(self::classname(), ['id' => 'parent_id'])-> 
           from(self::tableName() . ' AS parent'); 
    } 
    
  2. sıfır o zaman ana sınıfı adını aksi takdirde "Kök Sınıf gösterecektir/Bu kodu

    benim kodunda İşte
    [ 
    
        'label' => 'Parent Grade', 
    
        'value' => ($model->parent_id != '' || $model->parent_id != 0) ? $model->parent->name : 'Root Grade', 
    
    ], 
    

yazma ".

İlgili konular