2014-01-22 29 views
1

我試圖生成一個頁面,它將輸出部分標題(從一個表中檢索,即俱樂部名稱),並在這些標題(即俱樂部成員)下方輸入更多數據。Laravel 4 - Foreach查詢內部視圖中的標題

像這樣:

  • 部首
    • 會員1
    • 會員2
    • 會員3
  • 部首
    • 會員
    • 會員

我知道這將需要2所的foreach控制,但我不知道怎麼去Laravel採取查詢,將有來自另一個查詢參數(例如查詢1提供了俱樂部ID,查詢2的成員將從查詢1中獲得該俱樂部ID)

我應該怎麼做,同時保持MVC?

+0

這不是MVC。在將樹發送到視圖之前,應該構建樹。該觀點不應該做任何查詢。使用雄辯的ORM很容易建立這個數據結構,然後將它發送到一個視圖並在其中循環。您是否閱讀過文檔?現在你的問題太廣泛了。你有什麼嘗試? –

回答

1

這看起來像與數據庫和模型關係有關。敵人例如,如果你有一個表club_names和另一個表club_members那麼你可以創建一個Club模型像

class Club extends Eloquent { 

    protected $table = 'club_names'; 

    public function members() 
    { 
     return $this->hasMany('Member', 'club_name_id'); 
    } 

} 

對於這個工作,你的數據庫表需要如下

club_names

id | club_name | other_fields 

club_members

id | club_name_id | member_name | other_fields 

這裏,club_namesidclub_members表的外鍵,如果然後將這些規定 - 滿足您可以訪問俱樂部的成員如下

$clubs = Club::with('members')->get(); 
return View::make('your_view')->with('clubs', $clubs); 

在你看來那麼你可以使用

@foreach($clubs as $club) 
    <div class='club'> 
     {{ $club->club_name }} 
     @foreach($club->members as $member) 
      <div> 
       <p>{{ $member->member_name }}</p> 
       <p>{{ $member->other_fields }}</p> 
      </div> 
     @endforeach 
    </div> 
@endforeach 

閱讀更多關於relationships的網站在Laravel

+0

這絕對是我正在尋找的。如果我使用hasManyThrough關係怎麼辦? (說成員只是一張擁有成員實際數據的官員等其他表的ID)。我會如何輸出? (我有查詢工作,順便說一句) – dsgunter

+0

其實'hasManyThrough'需要三個相關的表,第一個表使用中間表的字段與第三個表使用該字段,如果你有這樣的設置,那麼你可以用它來代替。 –