2016-11-07 1 views
1

私はゲームスケジュールのテーブルを持っています。私のコントローラーで私はこれをやっています。このネストされたforeachの最後に空白行を追加するにはどうすればよいですか? - ララベルブレード

$schedule = Schedule::where('season', '=', $season->id) 
    ->where('date', '>', Carbon::now()->subDays(1))->get(); 

    foreach ($schedule as $item) { 
     $date = new Carbon($item['date']); 
     $months[$date->format("F Y")][] = $item; 
    } 

これにより、私はブレードビューでこれを行うことができます。

@foreach ($months as $month => $items) 
     <tr style="background-color: rgba(101, 101, 101, 0.4);"> 
      <td colspan="5"> 
      <strong>{{ $month }}</strong> 
      </td> 
     </tr> 
     @foreach ($items as $item) 
      <tr> 
      <td width="20%">{{ date('D, M j', strtotime ($item['date'])) }}/td> 
      <td width="20%">{{ $item['time'] }}</td> 
      <td width="25%"><a href="{{ url('team', $item['home_team_id']) }}">{{ $item['home_team'] }}</a></td> 
      <td width="25%"><a href="{{ url('team', $item['away_team_id']) }}">{{ $item['away_team'] }}</a></td> 
      <td width="10%"><a href="gamesheet/{{ $item['id'] }}" target="_blank"><i class="fa fa-print" aria-hidden="true"></i></a></td> 
      </tr> 
     @endforeach 
     @endforeach 

これは、この月をつかんで、その月を見出しとして別個の行を作成するという点で、とても良い点です。

今、毎週同じようにしたいと思います。このようなものを得るには。

November 2016 
Mon Nov 7 7:00PM Team A Team B 
Mon Nov 7 8:00PM Team C Team D 
<empty row here> 
Mon Nov 14 7:00PM Team D Team A 
Mon Nov 14 8:00PM Team B Team C 
<empty row here> 

私はこのようなコントローラで週の配列を定義しようとしました。

$weeks[$date->format("M j")][] = $item; 

しかし、月が変わるとループも終了する必要があります。 アイデアコントローラでさらにループを実行する必要がありますか?

ありがとうございます!

答えて

0

foreachループ内のifステートメントを使用してこれを達成できます。

は、あなたは自分のネストされたforeachループの最後にこれを追加する:現在の$item$itemsの最後の項目があるかどうかを確認します

@if ($item == end($items)) 
    <tr></tr> 
@endif 

。このような

何かがあなたにそこに道のほとんどを取得する必要があります。

@foreach ($items as $item) 
    <tr> 
    <td width="20%">{{ date('D, M j', strtotime ($item['date'])) }}/td> 
    <td width="20%">{{ $item['time'] }}</td> 
    <td width="25%"><a href="{{ url('team', $item['home_team_id']) }}">{{ $item['home_team'] }}</a></td> 
    <td width="25%"><a href="{{ url('team', $item['away_team_id']) }}">{{ $item['away_team'] }}</a></td> 
    <td width="10%"><a href="gamesheet/{{ $item['id'] }}" target="_blank"><i class="fa fa-print" aria-hidden="true"></i></a></td> 
    </tr> 
    @if ($item == end($items)) 
    <tr></tr> 
    @endif 
@endforeach 

あなたはおそらくこれで終わるだろう、あなたの現在のforeachループを見ているものの:できればちょうどそう

November 2016 
Mon Nov 7 7:00PM Team A Team B 
Mon Nov 7 8:00PM Team C Team D 
Mon Nov 14 7:00PM Team D Team A 
Mon Nov 14 8:00PM Team B Team C 
<empty row here> 

foreachループをさらに壊してから、このメソッドを使って、あなたが何をしているかを達成することができます。

関連する問題