2017-03-23 67 views
0

如何做laravel多級自加入5.4
我有這樣的表。Laravel Eloquent多級自我加入

ID name ParentId 
1  abc  0  
2  acd  1  
3  ads  1  
4  xyz  2  
5  xxy  2  
6  plm  3  
7  ytr  4  
8  lks  6 

現在我需要:
#如果我叫ID 1將返回其下滿樹。
#如果我把它倒空,將返回滿樹
#我這樣做

public function getParent() { 
     return $this->belongsTo(self::class, 'ParentId','id'); 
    } 

    public function getChild(){ 
     return $this->hasMany(self::class, 'ParentId','id'); 
    } 

它給了我一個早午餐,但我需要充斥其中。



一些PLZ的幫助。

+1

終於我能夠做到了。 我在遞歸函數中調用了getChild。 – Azad

+0

你如何解決問題,你能看到我的代碼嗎? –

回答

0
public function chartLedgre($headId) { 
    $mainHead = self::where('id',$headId)->get(); 
    if(count($mainHead[0]->childs) > 0){ 
     foreach ($mainHead[0]->childs as $child){ 
      if($child->chart_type == 'L'){ 
       $this->data[] = $child->id; 
      }else{ 
       $this->chartLedgre($child->id); 
      } 
     } 
    }else{ 
     if($mainHead[0]->chart_type == 'L'){ 
      $this->data[] = $mainHead[0]->id; 
     } 
    } 
    return $this->data; 
}