Answer.php 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <?php
  2. namespace App\Models;
  3. use App\Models\Relations\BelongsToUserDataTrait;
  4. use App\Models\Relations\BelongsToUserTrait;
  5. use App\Models\Relations\MorphManyCommentsTrait;
  6. use Illuminate\Database\Eloquent\Model;
  7. class Answer extends Model
  8. {
  9. use MorphManyCommentsTrait,BelongsToUserTrait;
  10. protected $table = 'answers';
  11. protected $fillable = ['question_title','question_id','user_id','device','content','status','created_at','updated_at'];
  12. public static function boot()
  13. {
  14. parent::boot();
  15. /*监听创建*/
  16. static::creating(function($answer){
  17. /*开启状态检查*/
  18. if(Setting()->get('verify_answer')==1){
  19. $answer->status = 0;
  20. }
  21. });
  22. /*监听删除事件*/
  23. static::deleting(function($answer){
  24. /*问题回答数 -1 */
  25. $answer->question()->where('answers','>',0)->decrement('answers');
  26. /*用户回答数 -1 */
  27. $answer->user->userData()->where('answers','>',0)->decrement('answers');
  28. /*删除动态*/
  29. Doing::where('source_type','=',get_class($answer))->where('source_id','=',$answer->id)->delete();
  30. /*删除回答评论*/
  31. Comment::where('source_type','=',get_class($answer))->where('source_id','=',$answer->id)->delete();
  32. });
  33. }
  34. public function question(){
  35. return $this->belongsTo('App\Models\Question');
  36. }
  37. }