input('id')) { $knowledge = Knowledge::find($request->input('id'))->toArray(); if (!$knowledge) abort(500, '知识不存在'); return response([ 'data' => $knowledge ]); } return response([ 'data' => Knowledge::select(['title', 'id', 'updated_at', 'category', 'show']) ->orderBy('sort', 'ASC') ->get() ]); } public function getCategory(Request $request) { return response([ 'data' => array_keys(Knowledge::get()->groupBy('category')->toArray()) ]); } public function save(KnowledgeSave $request) { $params = $request->validated(); if (!$request->input('id')) { if (!Knowledge::create($params)) { abort(500, '创建失败'); } } else { try { Knowledge::find($request->input('id'))->update($params); } catch (\Exception $e) { abort(500, '保存失败'); } } return response([ 'data' => true ]); } public function show(Request $request) { if (empty($request->input('id'))) { abort(500, '参数有误'); } $knowledge = Knowledge::find($request->input('id')); if (!$knowledge) { abort(500, '知识不存在'); } $knowledge->show = $knowledge->show ? 0 : 1; if (!$knowledge->save()) { abort(500, '保存失败'); } return response([ 'data' => true ]); } public function sort(KnowledgeSort $request) { DB::beginTransaction(); try { foreach ($request->input('knowledge_ids') as $k => $v) { $knowledge = Knowledge::find($v); $knowledge->timestamps = false; $knowledge->update(['sort' => $k + 1]); } } catch (\Exception $e) { DB::rollBack(); abort(500, '保存失败'); } DB::commit(); return response([ 'data' => true ]); } public function drop(Request $request) { if (empty($request->input('id'))) { abort(500, '参数有误'); } $knowledge = Knowledge::find($request->input('id')); if (!$knowledge) { abort(500, '知识不存在'); } if (!$knowledge->delete()) { abort(500, '删除失败'); } return response([ 'data' => true ]); } }