2017-01-31 93 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" 
    } 
] 

現在我正在尋找顯示在標籤內的任何月份的數據。我已經去除了大部分月份的用於演示目的

<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方法在你的控制器:

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

然後在視圖中,您可以在每月的foreach鑰匙:

<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> 

準確履行a重刑取決於你的代碼當然,但這應該讓你開始。

你甚至可以簡化代碼更多,如果你做了一些整理在​​後端(這樣幾個月都以正確的順序),是這樣的:

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>