2017-01-31 5 views
0

ファイルをアップロードできます。アップロード時に月が選択されます。今私の見解では、月に固有のアップロードに関するすべてのデータを渡します。基本的に、私の見解は、この条件に基づいてデータを表示

array:2 [▼ 
    0 => {#235 ▼ 
    +"id": 11 
    +"upload_month": "Janaury" 
    +"MAX(created_at)": "2017-01-30 13:25:59" 
    } 
    1 => {#236 ▼ 
    +"id": 10 
    +"upload_month": "April" 
    +"MAX(created_at)": "2017-01-30 13:22:39" 
    } 
] 

ようなもので終わる今、私は、タブの中に持っているものは何でもか月間のデータを表示するために探しています。私はappropiateタブ内に表示することができますどのように、デモの目的(データはあまりにも関連していることを、月が含まれています)ビューを渡されたデータと

<ul class="nav nav-tabs"> 
    <li class="active"><a href="#January" data-toggle="tab">JAN</a></li> 
    <li><a href="#February" data-toggle="tab">FEB</a></li> 
    <li><a href="#March" data-toggle="tab">MAR</a></li> 
</ul> 

<div class="tab-content"> 
    <div class="tab-pane active" id="January"> 
     <h3>Jan Data</h3> 
    </div> 
    <div class="tab-pane" id="February"> 
     <h3>Feb Data</h3> 
    </div> 
    <div class="tab-pane" id="March"> 
     <h3>Mar data</h3> 
    </div> 
</div> 

のために数ヶ月のほとんどが削除されていますか?

何かアドバイスは

おかげ

答えて

1

最も簡単な方法は、おそらくあなたのコントローラでgroupBy方法で構築活用することです感謝:次にビューであなたが月にforeachの可能

// instead of 
// return $someDataObject; 
return $someDataObject->groupBy('upload_month'); 

キー:

<ul class="nav nav-tabs"> 
    <li class="active"><a href="#January" data-toggle="tab">JAN</a></li> 
    <li><a href="#February" data-toggle="tab">FEB</a></li> 
    <li><a href="#March" data-toggle="tab">MAR</a></li> 
</ul> 

<div class="tab-content"> 
    <div class="tab-pane active" id="January"> 
     <h3>Jan Data</h3> 
     @foreach($collectionOfData['January'] as $monthData) 
      {{ $monthData->id }} 
     @endforeach 
    </div> 
    <div class="tab-pane" id="February"> 
     <h3>Feb Data</h3> 
     @foreach($collectionOfData['February'] as $monthData) 
      {{ $monthData->id }} 
     @endforeach 
    </div> 
    <div class="tab-pane" id="March"> 
     <h3>Mar data</h3> 
     @foreach($collectionOfData['March'] as $monthData) 
      {{ $monthData->id }} 
     @endforeach 
    </div> 
    ..... 
</div> 

厳密な実装あなたのコードに依存していますが、これはあなたを始めるはずです。

あなたには、いくつかのバックエンドで並べ替えた場合でも、(数ヶ月は、正しい順序にあったように)のようなもののコードの詳細を簡素化することができます:

return $someDataObject->groupBy('upload_month')->sortBy('someDateRepresentationOfTheMonthTheDataRepresents'); 

とビューで:

<ul class="nav nav-tabs"> 
    @foreach($collectionOfData as $monthName => $monthData) 
     {{-- This uses the $loop variable which is only available in Laravel 5.3 and above --}} 
     <li class="<?php if($loop->first) { echo 'active'; } ?>"><a href="#{{ $monthName }}" data-toggle="tab"><?php strtoupper(date('M', strtotime($monthName))); ?></a></li> 
    @endforeach 
</ul> 

<div class="tab-content"> 
    @foreach($collectionOfData as $monthName => $monthData) 
     {{-- This uses the $loop variable which is only available in Laravel 5.3 and above --}} 
     <div class="tab-pane <?php if($loop->first) { echo 'active'; } ?>" id="{{ $monthName }}"> 
      <h3><?php date('M', strtotime($monthName)); ?> Data</h3> 
      @foreach($monthData as $monthDataPieces) 
       {{ $monthDataPieces->id }} 
      @endforeach 
     </div> 
    @endforeach 
</div> 
関連する問題