根据条件显示数据
Display data based on conditions
我允许上传文件。上传时选择了一个月。现在,在我看来,我传递了与上传相关的所有数据,每个月都是唯一的。本质上,我的观点最终是这样的
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>
通过视图传递的数据(其中也包含数据相关的月份),如何在适当的选项卡中显示它?
感谢任何建议
谢谢
最简单的方法可能是利用控制器中内置的 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>
具体的实现当然取决于您的代码,但这应该可以帮助您入门。
如果您在后端进行一些排序(以便月份的顺序正确),您甚至可以进一步简化代码,例如:
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>
我允许上传文件。上传时选择了一个月。现在,在我看来,我传递了与上传相关的所有数据,每个月都是唯一的。本质上,我的观点最终是这样的
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>
通过视图传递的数据(其中也包含数据相关的月份),如何在适当的选项卡中显示它?
感谢任何建议
谢谢
最简单的方法可能是利用控制器中内置的 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>
具体的实现当然取决于您的代码,但这应该可以帮助您入门。
如果您在后端进行一些排序(以便月份的顺序正确),您甚至可以进一步简化代码,例如:
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>