从一对一关系中获得结果

时间:2018-09-29 00:02:27

标签: laravel-5

我在两个表之间建立一对一的关系。一个给员工,另一个给他们的时间表。 当我想查看员工的工作时间不正常时!到目前为止,我只是通过phpmyadmin输入小时数。

 public function up()
    {
        Schema::create('timesheets', function (Blueprint $table) {
            $table->increments('id');

            $table->integer('starz_id');
            //starz = employee. I just name it starz

            for($i=1;$i<=31;$i++){
                $table->integer('Jan'.$i)->nullable();
            }

            $table->timestamps();
        });
    }
<table class="table table-bordered table-hover">

    <tr>
        <td>Name</td>
        @for($i=1;$i<=14;$i++)
            <td>Jan{{$i}}</td>
        @endfor
        <td>Total</td>
    </tr>

    <tr>
        @foreach($timesheet as $one)
            <td>
                {{$one->starz->name}}
            </td>

            @for($i=1;$i<=14;$i++)
                <td>
                    {{ $one->Jan.$i }}
                </td>
            @endfor
    </tr>
    @endforeach
</table>

结果

Name    Jan1    Jan2    Jan3    Jan4    Jan5    Jan6    Jan7    Jan8     Jan9   Jan10   Jan11   Jan12   Jan13   Jan14   Total

ali     1   2   3   4   5   6   7   8   9   10  11  12  13  14

我还需要知道什么是计算实际时间的正确方法。例如:我想要后面的make函数计算从开始时间(9am)和结束时间(6.30pm)花费的实际工作时间。 laravel我该怎么做?

1 个答案:

答案 0 :(得分:0)

我认为您想实现的目标可以用其他方式完成,这对您来说会更容易。请允许我为您写点东西

Employee.php

public class Employee{
    public timesheets(){
        return $this->hasMany(TimeSheet::class, 'starz_id');
    }
}

TimeSheet.php

public class TimeSheet{
    public employee(){
        return $this->belongsTo(TimeSheet::class, 'starz_id');
    }
}

时间表迁移

Schema::create('timesheets', function (Blueprint $table) {
    $table->increments('id');
    $table->integer('starz_id');
    //now from your form i will encourage you log in an employee using their entry and exit time
    $table->string('date')->nullable();
    $table->string('entry_time')->nullable();
    $table->string('exit_time')->nullable;
    $table->timestamps();
});

您可以使用PHP来计算工作时间,甚至可以使用Carbon库。 在呈现员工时间表时,您可以使用其他一些逻辑来即兴创作。看起来循环是您的最爱

您的上述逻辑将起作用,但并非每个月都有31天