为大片文字预先道歉,但是由于上下文的特定性质,我无法提出一种以较短形式呈现问题的方法。 >
如果您想跳过我的上下文简介,请向下滚动到下面的虚线:
我正在做编码挑战,这是我的第一个Laravel应用程序,其中我需要设置一个出勤跟踪器/时间跟踪器(显示特定员工每天在工作上花费的时间(在签到和签到之间)退出)。
我是一个完整的初学者(现在从Laracasts的Scratch On Laracasts中学习Laravel 5.7),所以我正在寻找一种解决方案/代码方法,该方法/方法应属于我目前的知识范围,而不是我所不知道的东西。还没有在Laracasts上学习。
基本上,对我来说,最好指向一种语法和方法的解决方案,这些解决方案在Laracast上的第20集之前显示(基本路由,基本控制器用法,基本资源控制器用法,获取和发布,补丁,删除方法) ,非常基础的雄辩关系(仅知道belongsTo和hasMany关系)。
请注意,坚持使用这些方法完全是可取的,但是其他解决方案绝对不受欢迎。
------------------------------------------------ -------
这种情况的摘要是,我有一个html表,其中要显示员工的出勤统计信息。我有一个“员工管理” 页面(/员工/管理视图),可以在其中添加新员工并将其保存在“当前员工”表中。
/ employees / manage视图中的摘录:
<div class="table_container">
<table class="table table-striped">
. . . . . . . . ..
@foreach($employees as $employee)
<tr>
<td>{{ $employee->id }}</td>
<td>{{ $employee->name }}</td>
<th>{{ $employee->position }}</th>
</tr>
@endforeach
</table>
</div>
EmployeesController中的代码:
public function manage()
{
$employees = Employee::all();
return view('employees.manage', compact('employees'));
}
public function store()
{
$employee = new Employee();
$employee->name = request('name');
$employee->position = request('position');
$employee->save();
return redirect('/employees/manage');
}
我也有一个“出勤管理” 页面(/出席者/管理/视图),基本上可以从表单类型中选择可用的雇员。然后,我计划通过相应的按钮“签入”或“签出”员工。
<option selected>Select an Employee</option>
@foreach($attendants as $attendant)
<option value="{{ $attendant->name }}">{{ $attendant->name }}</option>
@endforeach
我应该如何将现有员工纳入选择表?我一直在考虑在 Employee 和 Attendant 模型之间建立雄辩的关系:
class Attendant extends Model
{
public function employee()
{
return $this->belongsTo(Employee::class);
}
}
这是服务员的迁移:
{
Schema::create('attendants', function (Blueprint $table) {
$table->increments('id');
$table->unsignedInteger('employee_id');
$table->foreign('employee_id')->references('id')>on('employees');
. . . . .
$table->timestamps();
});
}
所以,基本上,我的问题是,我将如何在选择表单中列出可用员工?
谢谢。
答案 0 :(得分:0)
/员工/管理视图列表:很好
EmployeesController
public function store(Request $request)
{
// Use validation
Employee::create($request->all());
return redirect()->route(employees.manage); //Try to use route
}
对于HTML表单,使用Laravel Collective可以减少代码。加入laravel形式的集体之后
{!! Form::select('attendants', $attendants, $selected_val,['id'=>'id','class'=>'class']) !!}
用于选择框和选项的一行代码