我在两个表之间建立一对一的关系。一个给员工,另一个给他们的时间表。 当我想查看员工的工作时间不正常时!到目前为止,我只是通过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我该怎么做?
答案 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天