想问一下前面的问题,我确实在attendance_details
表中插入了add数据,它起作用了,但是我想在提交之前,将attendance
表自动更改为Done表,在0
之前更改为1
。但是注册时的错误显示类似于Method Illuminate\Database\Eloquent\Collection::save does not exist.
的内容。
考勤表明细:
和出勤率:
考勤表中有Done
表,提交后仍为0
,应改为1
代码:
"刀锋"
<form method="POST" action="{{route('add.data')}}" enctype="multipart/form-data">
@csrf
<input type="hidden" name="id_atte" value="{{ $dataAttendance->id_atte }}"
>
主计长
public function ViewData($id){
$dataAttendance = Attendance::findOrFail($id);
$dataAttendanceTa = Attendance::join('subjects', 'attendances.id_subject', '=', 'subjects.id_sub')
->join('class_infos', 'subjects.id_class', '=', 'class_infos.id')
->join('class_details', 'class_infos.id', '=', 'class_details.id_class')
->join('users', 'class_details.id_user', '=', 'users.id')
->where('attendances.id_atte', '=', $id)
->get();
return view('index', compact('dataAttendanceDe', 'dataAttendance', 'dataAttendanceTa'));
}
public function AddData(Request $request) {
// Add Data attendance_details
foreach($request->get('id_atte') as $index => $value) {
AttendanceDetail::create([
'id_atte' => $value,
'id_student' => $request->get('id_student')[$index],
'id_atte_type' =>$request->get('id_atte_type')[$index],
'note' => $request->get('note')[$index]
]);
}
// Update Data attendance
$data = Attendance::find($request->id_atte);
$data->done = '0';
$data->save();
return redirect('teacher/data-attendance');
}
编码哪里出错了?
2条答案
按热度按时间igetnqfo1#
$request->id_atte
从代码的上下文中返回一个id的数组,这意味着$data = Attendance::find($request->id_atte);
将返回一个模型的数组而不是一个,这意味着它不能被保存。您可以在另一个foreach循环中设置
done
属性,也可以在初始创建中设置。n1bvdmb62#
在循环函数中,您应该更新出勤模型
也可以在whereIn之后使用更新查询方法