博主信息
Victor的博客
博文
35
粉絲
0
評論
0
訪問量
10721
積分:0
P豆:78

laravel框架 -- 文章修改及刪除 -- 2019年11月26日

2019年11月30日 19:30:09閱讀數:306博客 / Victor的博客 / laravel框架

參考課程內容,完成后臺文章的修改及刪除功能

一、作業總結

根據課堂知識,自己改造了實現方法:
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. }

三、實現效果圖



批改老師:歐陽克歐陽克

批改狀態:合格

老師批語:完成的不錯,繼續加油。

全部評論

文明上網理性發言,請遵守新聞評論服務協議

條評論
暫無評論暫無評論!
  • 白小姐救世民彩图2019