Blogger Information
Blog 35
fans 0
comment 0
visits 44283
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
laravel框架 -- 文章修改及删除 -- 2019年11月26日
Victor的博客
Original
1561 people have browsed it

参考课程内容,完成后台文章的修改及删除功能

一、作业总结

根据课堂知识,自己改造了实现方法:
1、以内容列表页面为主要显示页面,采用弹框来处理内容的添加、修改和删除;
2、弹框内容采用ajax 的get方法获取数据
3、弹框内容提交采用ajax 的post方法发送到admins/content/add方法去处理;
4、添加、修改和删除的数据内容、操作方法非常类似,所以集中到add方法中统一处理。其中添加和修改差别在于是否有指定的id,修改和删除都是对指定id的记录做处理;
5、文章信息和文章内容分在两个不同的表中,在做数据库写入操作中采用了手动的数据库事务管理,用try+catch来处理异常。
6、百度编辑器引入时有路径重定义的问题,加入后,在弹框中的部分功能体验不好,后更换为wangEditor。

二、add方法代码实例

  1. public function add(Request $req) {
  2. //标题不能为空
  3. $data['title'] = trim($req->title);
  4. if ($data['title'] == '') {
  5. exit(json_encode(['code' => 1, 'msg' => '内容标题不能为空!']));
  6. }
  7. //将req中的传值取出,赋给$data数组
  8. $data['cate_id'] = (int) ($req->cate_id);
  9. $data['subtitle'] = trim($req->subtitle);
  10. $data['seo_title'] = trim($req->seo_title);
  11. $data['keyword'] = trim($req->keyword);
  12. $data['cover_img'] = trim($req->cover_img);
  13. $data['author'] = trim($req->author);
  14. $data['from_site'] = trim($req->cover_img);
  15. $data['descs'] = trim($req->descs);
  16. $data['is_comment'] = (int) ($req->is_comment);
  17. $data['status'] = (int) ($req->status);
  18. //富文本编辑的内容要存的内容详情的表中
  19. $detail['contents'] = trim($req->content);
  20. // 判断要执行的操作:add update del
  21. $method = $req->reqMethod;
  22. // 添加
  23. if ($method == 'add') {
  24. $data['add_time'] = time(); //添加时间
  25. // 多表操作,开启数据库事务管理,采用手动方式处理异常信息
  26. DB::beginTransaction();
  27. try {
  28. $aid = DB::table('xpcms_article')->insertGetId($data);
  29. $detail['aid'] = $aid;
  30. DB::table('xpcms_article_content')->insert($detail);
  31. DB::commit();
  32. exit(json_encode(['code' => 0, 'msg' => '保存成功!']));
  33. } catch (Exception $e) {
  34. DB::rollback();
  35. exit(json_encode(['code' => 1, 'msg' => '保存过程中发生错误!']));
  36. }
  37. }
  38. $id = $req->id;
  39. // 修改
  40. if ($method == 'update') {
  41. $data['edit_time'] = time(); //编辑时间
  42. // 多表操作,开启数据库事务管理,采用手动方式处理异常信息
  43. DB::beginTransaction();
  44. try {
  45. DB::table('xpcms_article')->where('id', $id)->update($data);
  46. $detail['aid'] = $id;
  47. DB::table('xpcms_article_content')->where('aid', $id)->update($detail);
  48. DB::commit();
  49. exit(json_encode(['code' => 0, 'msg' => '修改成功!']));
  50. } catch (Exception $e) {
  51. DB::rollback();
  52. exit(json_encode(['code' => 1, 'msg' => '修改过程中发生错误!']));
  53. }
  54. }
  55. // 删除
  56. if ($method == 'del') {
  57. //$data['edit_time'] = time(); //编辑时间
  58. // 设置status为2,做逻辑删除,前端使用时需注意
  59. DB::table('xpcms_article')->where('id', $id)->update(['status' => 2, 'edit_time' => time()]);
  60. exit(json_encode(['code' => 0, 'msg' => '删除成功!']));
  61. }
  62. }

三、实现效果图



Correcting teacher:查无此人查无此人

Correction status:qualified

Teacher's comments:完成的不错,继续加油。
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post