QuestionAnswer.php 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <?php
  2. namespace app\common\model\base\question;
  3. /**
  4. * @title: 问答中心-回复
  5. * @Description:
  6. * @Author: goldenrock 112049337@qq.com
  7. * @Date: 2024-06-12 09:26:12
  8. * @return {*}
  9. * @method: POST
  10. * @LastEditTime: 2024-06-13 15:06:22
  11. * @LastEditors: goldenrock 112049337@qq.com
  12. */
  13. use app\common\model\Common;
  14. use app\common\model\base\user\User;
  15. class QuestionAnswer extends Common
  16. {
  17. protected $name = 'system_question_answer';
  18. protected $createTime = 'create_at';
  19. protected $updateTime = 'update_at';
  20. protected $deleteTime = 'delete_at';
  21. protected $append = ['uid_txt','likes_num','dislikes_num'];
  22. public function getUidTxtAttr($value,$data)
  23. {
  24. $value = $value ? $value : (isset($data['uid']) ? $data['uid'] : '');
  25. $list = User::cache(50)->column('name','user_id');
  26. return isset($list[$value]) ? $list[$value] : '';
  27. }
  28. public function user()
  29. {
  30. return $this->belongsTo(User::class,'uid','user_id')->visible(['avatar','name']);
  31. }
  32. // 点赞数
  33. public function getLikesNumAttr($value,$data)
  34. {
  35. $value = $value ? $value : (isset($data['likes']) ? $data['likes'] : '');
  36. return !empty($value)?count(explode(',',$value)):0;
  37. }
  38. // 点踩数
  39. public function getDislikesNumAttr($value,$data)
  40. {
  41. $value = $value ? $value : (isset($data['dislikes']) ? $data['dislikes'] : '');
  42. return !empty($value)?count(explode(',',$value)):0;
  43. }
  44. // 点赞人员获取器
  45. public function getLikesAttr($value,$data)
  46. {
  47. $value = $value ? $value : (isset($data['likes']) ? $data['likes'] : '');
  48. return !empty($value)?explode(',',$value):[];
  49. }
  50. // 点踩人员获取器
  51. public function getDislikesAttr($value,$data)
  52. {
  53. $value = $value ? $value : (isset($data['dislikes']) ? $data['dislikes'] : '');
  54. return !empty($value)?explode(',',$value):[];
  55. }
  56. // 点赞人员修改器
  57. public function setLikesAttr($value)
  58. {
  59. return is_array($value)?implode(',',$value):'';
  60. }
  61. // 点踩人员修改器
  62. public function setDislikesAttr($value)
  63. {
  64. return is_array($value)?implode(',',$value):'';
  65. }
  66. //回复问题后,将问题的回复状态改为已回复
  67. static public function onAfterWrite($data)
  68. {
  69. $question_id = $data['question_id'];
  70. Question::where('id',$question_id)->update(['status'=>2]);
  71. }
  72. }