public function delete($id) { $field = HardwareField::find($id); $hardware_id = $field->hardware->id; $field->delete(); return redirect()->to(route('hardware.profile', ['id' => $hardware_id]))->with('message_content', '删除成功 !')->with('message_type', 'info'); }
public function edit(Request $request) { $user = \Session::get('user'); if (!$user->can('项目硬件部署管理')) { abort(401); } $item = HardwareItem::find($request->input('id')); $project = $item->project; $hardware = $item->hardware; $old_attributes = $item->attributesToArray(); $item->status = $request->input('status'); $item->extra = $request->input('fields', []); $item->ref_no = $request->input('ref_no'); $time = $request->input('time'); if (!$time) { $time = null; } else { $time = \Carbon\Carbon::createFromFormat('Y/m/d', $time)->format('Y-m-d H:i:s'); } $item->time = $time; $item->save(); $new_attributes = $item->attributesToArray(); $old_extra = $old_attributes['extra']; $new_extra = $new_attributes['extra']; $change = []; foreach (array_diff_assoc($old_extra, $new_extra) as $key => $value) { if (isset($old_extra[$key])) { $old_extra_value = $old_extra[$key]; } else { $old_extra_value = null; } if (isset($new_extra[$key])) { $new_extra_value = $new_extra[$key]; } else { $new_extra_value = null; } $title = HardwareField::find($key)->name; \Log::notice(strtr('项目硬件明细修改: 用户(%name[%id]) 修改了项目(%project_name[%project_id]) 硬件 (%hardware_name[%hardware_id]) 的 自定义明细信息: %title[%key] : %old -> %new', ['%name' => $user->name, '%id' => $user->id, '%project_name' => $project->name, '%project_id' => $project->id, '%hardware_name' => $hardware->name, '%hardware_id' => $hardware->id, '%hardware_item_id' => $item->id, '%key' => $key, '%title' => $title, '%old' => $old_extra_value, '%new' => $new_extra_value])); $change[] = ['title' => $title, 'old' => $old_extra_value, 'new' => $new_extra_value]; } if (count($change)) { array_unshift($change, ['title' => strtr('硬件 (%hardware_name) 下新的硬件明细 %item_id', ['%hardware_name' => $hardware->name, '%item_id' => $item->id])]); Clog::add($project, '项目硬件明细修改', $change, Clog::LEVEL_INFO); } $helper = ['time' => '操作时间', 'status' => '状态', 'ref_no' => '硬件序号']; $change = []; unset($old_attributes['extra']); unset($new_attributes['extra']); foreach (array_diff_assoc($old_attributes, $new_attributes) as $key => $value) { $old_value = $old_attributes[$key]; $new_value = $new_attributes[$key]; switch ($key) { case 'status': $new_value = \App\HardwareItem::$status[$new_value]; $old_value = \App\HardwareItem::$status[$old_value]; break; case 'time': if ($new_value) { $new_value = $new_value->format('Y/m/d'); } if ($old_value) { $old_value = $old_value->format('Y/m/d'); } //时间需要特殊处理 if ($old_value == $new_value) { continue 2; } break; } $change[$key] = ['old' => $old_value, 'new' => $new_value, 'title' => $helper[$key]]; } if (count($change)) { foreach ($change as $c) { \Log::notice(strtr('项目硬件明细修改: 用户(%name[%id]) 修改了项目(%project_name[%project_id]) 硬件 (%hardware_name[%hardware_id]) 的 明细信息: %hardware_item_id, %title : %old -> %new', ['%name' => $user->name, '%id' => $user->id, '%project_name' => $project->name, '%project_id' => $project->id, '%hardware_name' => $hardware->name, '%hardware_id' => $hardware->id, '%hardware_item_id' => $item->id, '%title' => $c['title'], '%old' => $c['old'], '%new' => $c['new']])); } array_unshift($change, ['title' => strtr('硬件 (%hardware_name) 下新的硬件明细 %item_id', ['%hardware_name' => $hardware->name, '%item_id' => $item->id])]); Clog::add($project, '项目硬件明细修改', $change, Clog::LEVEL_INFO); } return redirect()->to(route('project.profile', ['id' => $item->project->id]))->with('message_type', 'info')->with('message_content', '修改部署硬件成功!')->with('tab', 'hardwares'); }