Requirement.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <?php
  2. namespace App;
  3. use Illuminate\Database\Eloquent\Model;
  4. use App\Traits\ModelLogChanging;
  5. use Illuminate\Database\Eloquent\Relations\BelongsTo;
  6. use Illuminate\Database\Eloquent\Relations\BelongsToMany;
  7. class Requirement extends Model
  8. {
  9. use ModelLogChanging;
  10. use \App\Traits\ModelTimeFormat;
  11. use \Illuminate\Database\Eloquent\SoftDeletes;
  12. //
  13. public $fillable = [
  14. 'user_id',//状态
  15. 'content', //内容
  16. 'title', //标题
  17. 'score', //分数
  18. 'status',//状态
  19. 'began_at',//开始时间
  20. 'finished_at',//完成时间
  21. 'reviewed_at',//验收时间
  22. ];
  23. public $dates = [
  24. 'began_at',//开始时间
  25. 'finished_at',//完成时间
  26. 'reviewed_at',//验收时间
  27. ];
  28. static public $enums=[
  29. 'status'=>[
  30. ''=>0,
  31. '待接收'=>1,
  32. '开发中'=>2,
  33. '待验收'=>3,
  34. '验收通过'=>4,
  35. '验收未通过'=>5,
  36. ],
  37. ];
  38. function __construct(array $attributes = [])
  39. {
  40. foreach (self::$enums as &$enum) {
  41. $enum=$enum+array_flip($enum);
  42. }
  43. parent::__construct($attributes);
  44. }
  45. public function getStatusAttribute($value)
  46. {
  47. if(!$value)return '';
  48. return self::$enums['status'][$value];
  49. }
  50. public function setStatusAttribute($value)
  51. {
  52. if(!$value)return 0;
  53. $this->attributes['status']=self::$enums['status'][$value];
  54. }
  55. public function creator(): BelongsTo
  56. {
  57. return $this->belongsTo(User::class,'user_id','id');
  58. }
  59. public function workers(): BelongsToMany
  60. {
  61. return $this->belongsToMany(User::class)
  62. ->using(RequirementUser::class)
  63. ->withPivot(['score']);
  64. }
  65. public function scopeFilter($query, $filters)
  66. {
  67. return $filters->apply($query);
  68. }
  69. }