Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.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
Php 从单个MySQL表重构Laravel eloquent中的数据_Php_Mysql_Database_Laravel_Eloquent - Fatal编程技术网

Php 从单个MySQL表重构Laravel eloquent中的数据

Php 从单个MySQL表重构Laravel eloquent中的数据,php,mysql,database,laravel,eloquent,Php,Mysql,Database,Laravel,Eloquent,我在一个MySQL表中有一些示例数据,该表包含以下字段:schedule\u id、day\u number、staff\u id、shift\u start\u time、shift\u end\u time、hours\u worked 我在MVC和Laravel开发方面还相对缺乏经验,所以我正在寻找一些关于如何最好地解决这个问题的指导 我需要做的是在表格中显示数据,使其格式与以下类似:- 员工身份证 第0天 第一天 第2天 第3天 第4天 第5天 第6天 21 12:00:00 - 1

我在一个MySQL表中有一些示例数据,该表包含以下字段:
schedule\u id、day\u number、staff\u id、shift\u start\u time、shift\u end\u time、hours\u worked

我在MVC和Laravel开发方面还相对缺乏经验,所以我正在寻找一些关于如何最好地解决这个问题的指导

我需要做的是在表格中显示数据,使其格式与以下类似:-


员工身份证
第0天
第一天
第2天
第3天
第4天
第5天
第6天
21
12:00:00 - 17:00:00
12:00:00 - 19:00:00
12:00:00 - 13:00:00
12:00:00 - 15:00:00
12:00:00 - 17:00:00
12:00:00 - 16:00:00
24
11:00:00 - 19:00:00
11:00:00 - 13:00:00
10:00:00 - 15:00:00
12:00:00 - 17:00:00
12:00:00 - 16:00:00
32
11:00:00 - 19:00:00
11:00:00 - 13:00:00
10:00:00 - 15:00:00
12:00:00 - 17:00:00
12:00:00 - 16:00:00

数据库查询
groupBy
可能无法满足您的需要。我假设您有一个“Staff”表,您在问题中显示的这个表与该表有关系。我还假设您已经定义了员工和关联关系的模型。这样做的目的是收集工作人员及其相关的日程条目,并将它们写在表格中

在控制器中(或您获取数据的任何位置):

他认为:

<table style="border: 1px solid black; text-align: center">
    <tr>
       <th>Staff ID</th>
       @for ($i = 0;$i < $dayCount;$i++) 
           <th>Day {{$i}}</th>
       @endfor
   </tr>

   @foreach ($staffData as $staffEntry) 
        <tr> 
            <td>{{$staffEntry->id}}</td>
            @for ($i = 0;$i < $dayCount;$i++)
                @php $dayEntry = $staffEntry->schedule->where("day_number",$i)->first(); @endphp   
                <td>{{$dayEntry?$dayEntry->shift_start_time:""}}-{{$dayEntry?$dayEntry->shift_end_time:""}}</td>
            @endfor
        </tr>
   @endforeach

员工身份证
@对于($i=0;$i<$dayCount;$i++)
第{{$i}天
@结束
@foreach($staffData作为$staffEntry)
{{$staffEntry->id}
@对于($i=0;$i<$dayCount;$i++)
@php$dayEntry=$staffEntry->schedule->where(“day_number”,$i)->first()@endphp
{{$dayEntry?$dayEntry->shift_开始时间:'}}-{{$dayEntry?$dayEntry->shift_结束时间:'}
@结束
@endforeach

只是一点批评。如果
hours\u worked
是基于shiftend-shiftstart简单计算的,那么它不应该是表中的一列,因为它可能导致更新异常。目前,我有一个表,其中包含我问题顶部描述的所有数据。第一个目标应该是设置这个新的staff表并创建与原始表的关系吗?是的,通常在关系之前设置实体,并且您拥有的表看起来像一个关系表。
<table style="border: 1px solid black; text-align: center">
    <tr>
       <th>Staff ID</th>
       @for ($i = 0;$i < $dayCount;$i++) 
           <th>Day {{$i}}</th>
       @endfor
   </tr>

   @foreach ($staffData as $staffEntry) 
        <tr> 
            <td>{{$staffEntry->id}}</td>
            @for ($i = 0;$i < $dayCount;$i++)
                @php $dayEntry = $staffEntry->schedule->where("day_number",$i)->first(); @endphp   
                <td>{{$dayEntry?$dayEntry->shift_start_time:""}}-{{$dayEntry?$dayEntry->shift_end_time:""}}</td>
            @endfor
        </tr>
   @endforeach