Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 根据条件显示数据_Laravel_Laravel 5.2_Laravel Blade - Fatal编程技术网

Laravel 根据条件显示数据

Laravel 根据条件显示数据,laravel,laravel-5.2,laravel-blade,Laravel,Laravel 5.2,Laravel Blade,我允许上传文件。上传时,选择一个月。现在在我的视图中,我传递了与上传相关的所有数据,这是本月独有的。本质上,我的观点是这样的 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"

我允许上传文件。上传时,选择一个月。现在在我的视图中,我传递了与上传相关的所有数据,这是本月独有的。本质上,我的观点是这样的

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>
一月数据 二月数据 Mar数据
对于传递给视图的数据(也包含数据相关的月份),我如何在appropiate选项卡中显示它

有什么建议吗


谢谢

最简单的方法可能是利用控制器中的内置方法:

//而不是
//返回$someDataObject;
返回$someDataObject->groupBy('upload_month');
然后在视图中,您可以按月份键foreach:

一月数据 @foreach($collectionOfData['一月]]作为$monthData) {{$monthData->id} @endforeach 二月数据 @foreach($collectionOfData['二月]]作为$monthData) {{$monthData->id} @endforeach Mar数据 @foreach($collectionOfData['March']作为$monthData) {{$monthData->id} @endforeach .....
当然,确切的实现取决于您的代码,但这应该让您开始

如果在后端进行一些排序(以便月份的顺序正确),甚至可以进一步简化代码,例如:

return $someDataObject->groupBy('upload_month')->sortBy('someDateRepresentationOfTheMonthTheDataRepresents');
并且认为:

    @foreach($collectionOfData作为$monthName=>$monthData) {{--这使用$loop变量,该变量仅在Laravel5.3及更高版本中可用--}