2016-10-20 55 views
0

我有一個醫院的表和進度表,我想用這些表Laravel創建一個動態調度表

+----+--------------+ 
| id |  name  | 
+----+--------------+ 
| 1 | hospital a | 
| 2 | hospital b | 
+----+--------------+ 

+-----+---------+--------+---------------+ 
| day | start | end | hospital_id | 
+-----+---------+--------+---------------+ 
| mon | 10:00 | 14:00 |  1  | 
| tue | 15:00 | 20:00 |  1  | 
| wed | 14:00 | 19:00 |  2  | 
| fri | 10:00 | 15:00 |  2  | 
+-----+---------+--------+---------------+ 

問題創建一個日程安排表HTML是計劃時間沒有對齊正確<th>
我需要的:

+-------+------+--------+-------+-------+-------+------+ 
| mon | tue | wed | thu | fri | sat | sun | 
+------------------------------------------------------+ 
|      hospital a      | 
+-------+-------+-------+-------+-------+-------+------+ 
| 10:00 | 15:00 |  |  |  |  |  | 
| - | - |  |  |  |  |  | 
| 14:00 | 20:00 |  |  |  |  |  | 
+-------+-------+-------+-------+-------+-------+------+ 
|      hospital b      | 
+-------+-------+-------+-------+-------+-------+------+ 
|  |  | 14:00 |  | 10:00 |  |  | 
|  |  | - |  | - |  |  | 
|  |  | 19:00 |  | 15:00 |  |  | 
+-------+-------+-------+-------+-------+-------+------+ 

,但它成了這個樣子

+-------+-------+-------+-------+-------+-------+------+ 
| mon | tue | wed | thu | fri | sat | sun | 
+------------------------------------------------------+ 
|      hospital a      | 
+-------+------+--------+-------+-------+-------+------+ 
| 10:00 | 15:00 |  |  |  |  |  | 
| - | - |  |  |  |  |  | 
| 14:00 | 20:00 |  |  |  |  |  | 
+-------+-------+-------+-------+-------+-------+------+ 
|      hospital b      | 
+-------+-------+-------+-------+-------+-------+------+ 
| 14:00 | 10:00 |  |  |  |  |  | 
| - | - |  |  |  |  |  | 
| 19:00 | 15:00 |  |  |  |  |  | 
+-------+-------+-------+-------+-------+-------+------+ 

這是我.blade.php腳本

<table class="table"> 
    <thead> 
     <tr> 
      <td class="text-center">mon</td> 
      <td class="text-center">tue</td> 
      <td class="text-center">wed</td> 
      <td class="text-center">thu</td> 
      <td class="text-center">fri</td> 
      <td class="text-center">sat</td> 
      <td class="text-center">sun</td> 
     </tr> 
    </thead> 
    <tbody> 
    @foreach($hospital as $hos) 
     <tr> 
      <td class="text-center _b" colspan="7">{{$hos->name}}</td> 
     </tr> 
     <tr> 
     @foreach($schedule->where('hospital_id', $hos->id) as $sch) 
     @if($sch->day == 'mon') 
      <td class="text-center"> 
       <div class="jam">{{Carbon::parse($sch->start_time)->format('H:i')}}</div> 
       <div class="jam active">s/d</div> 
       <div class="jam">{{Carbon::parse($sch->end_time)->format('H:i')}}</div> 
      </td> 
      @endif 
      @if($sch->day == 'tue') 
      <td class="text-center"> 
       <div class="jam">{{Carbon::parse($sch->start_time)->format('H:i')}}</div> 
       <div class="jam">s/d</div> 
       <div class="jam">{{Carbon::parse($sch->end_time)->format('H:i')}}</div> 
      </td> 
      @endif 
      @if($sch->day == 'wed') 
      <td class="text-center"> 
       <div class="jam">{{Carbon::parse($sch->start_time)->format('H:i')}}</div> 
       <div class="jam">s/d</div> 
       <div class="jam">{{Carbon::parse($sch->end_time)->format('H:i')}}</div> 
      </td> 
      @endif 
      @if($sch->day == 'thu') 
       <td class="text-center"> 
        <div class="jam">{{Carbon::parse($sch->start_time)->format('H:i')}}</div> 
        <div class="jam">s/d</div> 
        <div class="jam">{{Carbon::parse($sch->end_time)->format('H:i')}}</div> 
       </td> 
       @endif 
       @if($sch->day == 'fri') 
       <td class="text-center"> 
        <div class="jam">{{Carbon::parse($sch->start_time)->format('H:i')}}</div> 
        <div class="jam">s/d</div> 
        <div class="jam">{{Carbon::parse($sch->end_time)->format('H:i')}}</div> 
       </td> 
       @endif 
       @if($sch->day == 'sat') 
       <td class="text-center"> 
        <div class="jam">{{Carbon::parse($sch->start_time)->format('H:i')}}</div> 
        <div class="jam active">s/d</div> 
        <div class="jam">{{Carbon::parse($sch->end_time)->format('H:i')}}</div> 
       </td> 
       @endif 
       @if($sch->day == 'sun') 
       <td class="text-center"> 
        <div class="jam">{{Carbon::parse($sch->start_time)->format('H:i')}}</div> 
        <div class="jam">s/d</div> 
        <div class="jam">{{Carbon::parse($sch->end_time)->format('H:i')}}</div> 
       </td> 
       @endif 
       @endforeach 
      </tr> 
      @endforeach 
     </tbody> 
    </table> 
</table> 

這發生,因爲當if條件不符合<td></td>不會創建。但是當我嘗試在td內移動if時,表格看起來更可怕

+1

如果條件不符合,您是否嘗試創建空的td ID? – Terabyte

+0

已經嘗試過了,表格看起來更奇怪。在添加空的'​​'[Imgur](http://i.imgur.com/Tw4hcoC.png)之前。在添加空的'​​'[Imgur](http://i.imgur.com/U4vkJtN.png) – Spadaboyz

+0

後,您將不得不添加所有tds,只需填寫那些您需要根據條件顯示數據的tds –

回答

0

如果那一天沒有任何時間,則需要輸出空的<td></td>

<?php 
    $days = ['mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun']; 
?> 

@foreach($schedule->where('hospital_id', $hos->id) as $sch) 
    @foreach($days as $day) 
     @if($sch->day == $day) 
     <td class="text-center"> 
      <div class="jam">{{Carbon::parse($sch->start_time)->format('H:i')}}</div> 
      <div class="jam active">s/d</div> 
      <div class="jam">{{Carbon::parse($sch->end_time)->format('H:i')}}</div> 
     </td> 
     @else 
     <td></td> 
     @endif 
    @endforeach 
@endforeach