123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- <?php
- namespace app\common\model\base\question;
- /**
- * @title: 问答中心-回复
- * @Description:
- * @Author: goldenrock 112049337@qq.com
- * @Date: 2024-06-12 09:26:12
- * @return {*}
- * @method: POST
- * @LastEditTime: 2024-06-13 15:06:22
- * @LastEditors: goldenrock 112049337@qq.com
- */
- use app\common\model\Common;
- use app\common\model\base\user\User;
- class QuestionAnswer extends Common
- {
- protected $name = 'system_question_answer';
- protected $createTime = 'create_at';
- protected $updateTime = 'update_at';
- protected $deleteTime = 'delete_at';
- protected $append = ['uid_txt','likes_num','dislikes_num'];
- public function getUidTxtAttr($value,$data)
- {
- $value = $value ? $value : (isset($data['uid']) ? $data['uid'] : '');
- $list = User::cache(50)->column('name','user_id');
- return isset($list[$value]) ? $list[$value] : '';
- }
- public function user()
- {
- return $this->belongsTo(User::class,'uid','user_id')->visible(['avatar','name']);
- }
- // 点赞数
- public function getLikesNumAttr($value,$data)
- {
- $value = $value ? $value : (isset($data['likes']) ? $data['likes'] : '');
- return !empty($value)?count(explode(',',$value)):0;
- }
- // 点踩数
- public function getDislikesNumAttr($value,$data)
- {
- $value = $value ? $value : (isset($data['dislikes']) ? $data['dislikes'] : '');
- return !empty($value)?count(explode(',',$value)):0;
- }
- // 点赞人员获取器
- public function getLikesAttr($value,$data)
- {
- $value = $value ? $value : (isset($data['likes']) ? $data['likes'] : '');
- return !empty($value)?explode(',',$value):[];
- }
- // 点踩人员获取器
- public function getDislikesAttr($value,$data)
- {
- $value = $value ? $value : (isset($data['dislikes']) ? $data['dislikes'] : '');
- return !empty($value)?explode(',',$value):[];
- }
- // 点赞人员修改器
- public function setLikesAttr($value)
- {
- return is_array($value)?implode(',',$value):'';
- }
- // 点踩人员修改器
- public function setDislikesAttr($value)
- {
- return is_array($value)?implode(',',$value):'';
- }
- //回复问题后,将问题的回复状态改为已回复
- static public function onAfterWrite($data)
- {
- $question_id = $data['question_id'];
- Question::where('id',$question_id)->update(['status'=>2]);
- }
- }
|