Laravel-如何将收集数据加载到表中?

时间:2019-10-25 13:19:26

标签: php laravel html-table eloquent

我正在使用名为$ group_months的变量存储数据,以下是当我dd($ group_months)时的情况。箭头前面的数字表示月份,后面的数字表示时间。所以10 =十月

Collection {#187 ▼
  #items: array:4 [▼
    "Comp Time Used" => Collection {#292 ▼
      #items: array:3 [▼
        10 => "12:00:00"
        11 => "09:00:00"
        "01" => "12:00:00"
      ]
    }
    "Vacation Time Used" => Collection {#322 ▼
      #items: array:1 [▼
        11 => "04:00:00"
      ]
    }
    "Sick Time" => Collection {#325 ▼
      #items: array:1 [▼
        10 => "03:15:00"
      ]
    }
    "OT Accrued" => Collection {#316 ▼
      #items: array:1 [▼
        10 => "12:00:00"
      ]
    }
  ]
}

我想使用此数据并填写如下表:

<table class="table table-striped table-sm">
            <thead>
              <tr>
                <th scope="col">Month</th>
                <th scope="col">Overtime Hours</th>
                <th scope="col">Compensation Hours</th>
                <th scope="col">Vacation</th>
                <th scope="col">Personal Hours</th>
                <th scope="col">Sick Hours</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <th scope="row">Jan</th>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
                <td>
              </tr>
              <tr>
                <th scope="row">Feb</th>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
              </tr>
              <tr>
                <th scope="row">Mar</th>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
              </tr>
              <tr>
                <th scope="row">Apr</th>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
              </tr>
              <tr>
                <th scope="row">May</th>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
              </tr>
              <tr>
                <th scope="row">Jun</th>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
              </tr>
              <tr>
                <th scope="row">Jul</th>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
              </tr>
              <tr>
                <th scope="row">Aug</th>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
             </tr>
             <tr>
                <th scope="row">Sep</th>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
            </tr>
            <tr>
                <th scope="row">Oct</th>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
            </tr>
            <tr>
                <th scope="row">Nov</th>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
            </tr>
            <tr>
                <th scope="row">Dec</th>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
                <td></td>
            </tr>
            </tbody>
 </table>

我不确定如何执行此操作,也许使用某种循环?感谢您的帮助。

编辑: 现在将集合存储为数组:

array:4 [▼
  "Comp Time Used" => array:3 [▼
    10 => "12:00:00"
    11 => "09:00:00"
    "01" => "12:00:00"
  ]
  "Vacation Time Used" => array:1 [▼
    11 => "04:00:00"
  ]
  "Sick Time" => array:1 [▼
    10 => "03:15:00"
  ]
  "OT Accrued" => array:1 [▼
    10 => "12:00:00"
  ]
]

1 个答案:

答案 0 :(得分:2)

这应该使您入门。在将其发送到视图之前,我将结合控制器中的所有时间。这将使其变得容易。在这里,如果该月存在数组键,它将打印该月的值。如果它不存在,它将不会引发错误,因为array_key_exists只会返回false,而不会做其他任何事情。

<table class="table table-striped table-sm">
            <thead>
              <tr>
                <th scope="col">Month</th>
                <th scope="col">Overtime Hours</th>
                <th scope="col">Compensation Hours</th>
                <th scope="col">Vacation</th>
                <th scope="col">Personal Hours</th>
                <th scope="col">Sick Hours</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <th scope="row">Jan</th>
                <td></td>
                <td></td>
                @if(array_key_exists(1, $group_months['Comp Time Used']))
                <td>{{$group_months['Comp Time Used'][1]</td>
                @else
                <td>No time off used</td>
                @endif
                <td></td>
                <td></td>
                <td></td>
              </tr>
              <tr>
                <th scope="row">Feb</th>
                <td></td>
                <td></td>
                @if(array_key_exists(2, $group_months['Comp Time Used']))
                <td>{{$group_months['Comp Time Used'][2]</td>
                @else
                <td>No time off used</td>
                @endif
                <td></td>
                <td></td>
                <td></td>
              </tr>
            </tbody>
 </table>