У меня есть проект системы управления студентами, в котором у меня есть определенное количество партий в месяц, поэтому в каждой партии будет максимум 20 студентов, а также у каждой партии будут определенные даты (утренняя сессия и послеобеденная сессия). Например: Партия А будет иметь 18 учеников и будет иметь 3 даты, такие как ДД-ММ-ГГГГ, ДД-ММ-ГГГГ, ДД-ММ-ГГГГ. Как администратор, мне нужно зарегистрировать посещаемость для каждого студента, каждой партии, каждой даты и каждой сессии.
Это означает, что у меня есть сводный экран для одной партии, включая студентов, даты и сессии.
когда я щелкаю по партии, она должна показывать студентов и даты партии, в поле даты партии должен быть установлен флажок, когда я отмечаю эту кнопку, она должна быть помечена как присутствующая, если не помечена как отсутствующая.
Именно в табличном представлении заголовок состоит из дат. Хотя строки тела состоят из имени студента и флажка, соответствующего столбцу дат.
Все данные должны быть размещены в одном go, а также необходимо получить и обновить данные.
У меня есть попытался использовать массив для хранения данных, но все данные, хранящиеся в базе данных, не сохраняются в соответствии с необходимостью.
Как этого добиться?
Пробные коды приведены ниже ..
In Controller ..
public function get_add($id)
{
$module = $this->module;
$singleData = $this->batch->find($id);
return view('admin.'.$module.'.add_edit', compact('singleData', 'module'));
}
public function post_add(Request $request, $id)
{
$module = $this->module;
// $this->attendance->fill($request->all());
$dd = $request->schedule_id;
if($dd){
foreach($request->schedule_id as $key => $v){
$data = array(
'batch_id' => $id,
'schedule_id' => $request->schedule_id [$key],
'user_id' => $request->user_id [$key],
'am_attendance_status' => isset($request->am_attendance_status [$key]) ? 1 : 0,
'pm_attendance_status' => isset($request->pm_attendance_status [$key]) ? 1 : 0,
'created_at' => new DateTime,
'updated_at' => new DateTime,
);
// dd($data);
Attendance::insert($data);
}
return redirect('admin/'.$module.'/')->with('success', 'Data has been updated');
}else{
return redirect('admin/'.$module.'/')->with('error', 'Data has not been updated');
}
}
In Modal ..
<?php namespace App;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Database\Eloquent\SoftDeletes;
class Attendance extends Authenticatable
{
use SoftDeletes;
protected $dates = ['deleted_at'];
protected $table = 'attendance';
protected $fillable = ['batch_id', 'schedule_id', 'user_id', 'am_attendance_status', 'pm_attendance_status'];
public function user()
{
return $this->belongsTo('App\User', 'user_id');
}
public function batch()
{
return $this->belongsTo('App\Batch', 'batch_id');
}
public function schedule()
{
return $this->belongsTo('App\Schedule', 'schedule_id');
}
}
In Route ..
//Attendance
Route::get('attendance', 'Admin\AttendanceController@get_index');
Route::get('attendance/{id}/add', 'Admin\AttendanceController@get_add');
Route::post('attendance/{id}/add', 'Admin\AttendanceController@post_add');
In View ..
<div class="table-responsive text-center">
<table id="dataTable" class="table table-bordered table-hover" style="white-space: nowrap;">
<thead>
<th>#</th>
<th>NRIC</th>
<th>Student Name</th>
@foreach($singleData->schedule as $list)
<th class="text-center" colspan="2">{{ date('d M, Y', strtotime($list->date))}}</th>@endforeach
</thead>
<thead>
<th></th>
<th></th>
<th></th>
@foreach($singleData->schedule as $list)
<th class="text-center">{{$list->am_from_time}}</th>
<th class="text-center">{{$list->am_to_time}}</th>
@endforeach
</thead>
@php $students = App\StudentHasCourse::with('user')->where('batch_id', $singleData->id)->get(); @endphp
<?php $count = 0; ?>
@foreach($students as $row)
<?php $count++; ?>
<tr>
<th style="font-weight: normal;">{{$count}}</th>
<th style="font-weight: normal;">@foreach($row->user->student as $stud) {{$stud->nric}} @endforeach</th>
<th style="font-weight: normal;">{{$row->user->name}}</th>
@foreach($singleData->schedule as $list)
<input type="hidden" name="batch_id[]" value="{{$singleData->id}}">
<input type="hidden" name="user_id[]" value="{{$row->user->id}}">
<input type="hidden" name="schedule_id[]" value="{{$list->id}}">
<td>
<input type="checkbox" name="am_attendance_status[]" value="1">
</td>
<td>
<input type="checkbox" name="pm_attendance_status[]" value="1">
</td>
@endforeach
</tr>
@endforeach
</table>
Поля базы данных ..
id
user_id
batch_id
schedule_id
am_attendance_status
pm_attendance_status
created_at
updated_at
deleted_at
![](https://i.ibb.co/3B6S32P/attendance.jpg)