MaterialBox.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. namespace App;
  3. use Illuminate\Database\Eloquent\Model;
  4. use App\Traits\ModelLogChanging;
  5. use Illuminate\Database\Eloquent\Relations\HasOne;
  6. class MaterialBox extends Model
  7. {
  8. use ModelLogChanging;
  9. protected $fillable=['code','status',"material_box_model_id"];
  10. static public $enums=[
  11. 'status'=>[
  12. ''=>0,
  13. '在库外'=>1,
  14. '在U型线'=>2,
  15. '在缓存架'=>3,
  16. '在立库'=>4,
  17. '在出库中'=>5,
  18. '在入库中'=>6,
  19. '未知'=>7,
  20. '异常'=>8,
  21. ],
  22. ];
  23. function __construct(array $attributes = [])
  24. {
  25. foreach (self::$enums as &$enum) {
  26. $enum=$enum+array_flip($enum);
  27. }
  28. parent::__construct($attributes);
  29. }
  30. public function station():HasOne
  31. {
  32. return $this->hasOne(Station::class);
  33. }
  34. public function getStatusAttribute($value)
  35. {
  36. if(!$value)return '';
  37. return self::$enums['status'][$value];
  38. }
  39. public function setStatusAttribute($value)
  40. {
  41. if(!$value)return 0;
  42. $this->attributes['status']=self::$enums['status'][$value];
  43. }
  44. public function stationTaskMaterialBoxes()
  45. { //料箱任务
  46. return $this->hasMany(StationTaskMaterialBox::class,"material_box_id","id");
  47. }
  48. public function materialBoxModel()
  49. { //料箱型号
  50. return $this->belongsTo(MaterialBoxModel::class);
  51. }
  52. }