2014-02-20 153 views
1

目前,我有我試圖在排序以標題對象的數組,例如在目前,我有一個表格輸出是這樣的:添加標題

2014年2月1日 14: 15:00 14:50:00

2014年2月1日 14:50:00 15:25:00

2014年2月2日11點20分00秒 12:30 : 00

2014年2月2日 12:30:00 13點05分00秒

2014年2月4日17點10分00秒 十七時40分○○秒

2014年2月4日 17 :45:00 18點20分00秒

但是我正在尋找的是一個有點像這樣:

1 Febuary

2014年2月1日 14時十五分00秒 14:50:00

2014年2月1日 14:50:00 15:25:00

第二Febuary

2014年2月2日11時20分○○秒 12:30:00

2014年2月2日 12:30:00 13:05:00

4 febuary

2014年2月4日17時10分零零秒 17:40:00

2014年2月4日 17:45:00 十八時20分00秒

我使用laravel以從數據庫中檢索這些對象,而且每一個陣列內看起來有點像這樣:

object(Illuminate\Database\Eloquent\Collection)#922 (1) { 
    ["items":protected]=> 
    array(228) { 
    [0]=> 
    object(Lesson)#695 (20) { 
     ["attributes":protected]=> 
     array(16) { 
     ["id"]=> 
     string(4) "7312" 
     ["date"]=> 
     string(10) "2014-02-01" 
     ["start_time"]=> 
     string(8) "14:15:00" 
     ["end_time"]=> 
     string(8) "14:50:00" 
     } 
    } 
    [1]=> etc... 

有沒有人知道是否可以用這種方式來組織標題?這是我忽略的一個簡單功能嗎?

回答

1

據我所知,沒有簡單的功能來做你想做的事情(某種羣體)。假設你按日期排序,但(或在某種程度上類似日期的集合組合在一起),你可以使用如下代碼:

// controller action 
public function index() 
{ 
    // get all dates, ordered by date 
    $_dates = Date::orderby('date')->get(); 

    $dates = []; 
    $date = new Collection; // not really required, just feels nicer 
    $curDate = false; 

    foreach ($_dates as $_date) { 
     // if we have a new date, store current collection in master array, 
     // re-instantiate a blank collection, and set the current date 
     if ($_date->date != $curDate) { 
      if ($curDate !== false) { 
       $dates[$curDate] = $date; 
      } 
      $date = new Collection; 
      $curDate = $_date->date; 
     } 
     $date->push($_date); 
    } 

    return View::make('index', compact('dates')); 
} 

// view 
@foreach ($dates as $date => $items) 
    <h3>{{{ $date }}}</h3> 
    <ul> 
     @foreach ($items as $item) 
      <li>{{{ $item->date }}} {{{ join(' ', $item->times) }}}</li> 
     @endforeach 
    </ul> 
@endforeach 

很明顯,你可以提取該組,通過邏輯的輔助功能(並變量名稱較少混淆!)

+0

看着這個,不會將第一個集合鍵設置爲0,而不是日期? –

+0

非常正確。我現在修復了代碼示例,不再將第一個(空白)集合添加到主數組中(在'false'索引中)。 – alexrussell

0

嗯,是 - 從數據庫,橫向取對象,並將其注入到視圖,這樣的事情:

@foreach($collection as $object) 
    <ul> 
    {{$date}}//or fetch date also 
    <li>{{$object[0]["record"]}}</li> 
    </ul> 
@enforeach 

@foreach($collection as $object) 
    <ul> 
    {{$date}}//or fetch date also 
    <li>{{$object[1]["record"]}}</li> 
    </ul> 
@enforeach 

對不起,beeing通用,但在收集和對象將是您的收藏和對象名稱/索引。

+0

這並沒有達到OP所要求的,據我所知。 – alexrussell