簡體   English   中英

Laravel-多才多藝

[英]Laravel - Multiple relationships Eloquent

我剛剛開始學習laravel,並且我正處於雄辯的關系中! 我有兩個表,它們都是多級的:

Paginas-

  • IdPagina PK
  • 名稱
  • 父級

例:

  idPagina  name   parent 
  1          A      Null
  2          B       1

毛蟲-

  • IdCategoria PK
  • 名稱
  • 父級
  • IdPagina-FK

    例:

 idCategoria name parent idPagina 1 C Null 2 2 D 1 2 

好吧...所以我想得到這樣的東西:

  • 家長

  • B-(A的)孩子

  • C-(B的)子女

  • D-(C的)孩子

然后我有Paginas模型:

  class Paginas extends Eloquent{    

     public function children() {         
         return $this->hasMany('app\paginas', 'parent', 'idPagina');
         } 

          public static function tree() {
         return static::with(implode('.', array_fill(1, 10, 'children')))->where('parent', '=', null)->get();

       }}

和categorias模型:

class Categoria extends Eloquent{




 public function children() {
 return $this->hasMany('app\categoria', 'parent', 'idCategoria');

    }

     public static function tree() {

 return static::with(implode('.', array_fill(1, 10, 'children')))->where('parent', '=', null)->get();

 }
}

現在我只想加入兩個表!

已編輯

好吧,我剛剛添加了Stephen Lewis建議的代碼! 但是現在我無法獲得想要的多級功能,這是刀片服務器代碼

@foreach($paginas as $pagina)
  <h1>{{$pagina -> nomePag}}</h1>
   @foreach ($pagina -> children as $child)
     <h3>{{$child -> nomePag}}</h3>
     @foreach($pagina -> categorias as $categoria)
         {{$categoria -> nomeCat}}
     @endforeach
   @endforeach
@endforeach

好吧,我就是無法獲得與$ pagina相關的$ categoria->兒童

將此添加到Categoria類中:

public function pagina()
{
    return $this->belongsTo('Pagina', 'idPagina');
}

您還可以通過將關系添加到Pagina類中來指定關系的另一端:

public function categorias()
{
    return $this->hasMany('Categoria', 'idPagina');
}

文檔中提供有關如何處理口才關系的更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM