ProcessesContent.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. namespace App;
  3. use Illuminate\Database\Eloquent\Model;
  4. use App\Traits\ModelTimeFormat;
  5. class ProcessesContent extends Model
  6. {
  7. use ModelTimeFormat;
  8. protected $fillable=[
  9. 'process_id','bill_type','commodity_id','wms_code','amount','type'
  10. ];
  11. protected $appends=[
  12. 'commodity_name',
  13. 'sign_commodity_name_mark',
  14. 'sign_commodity_sku_mark',
  15. ];
  16. public function process(){
  17. return $this->belongsTo('App\Process','process_id','id');
  18. }
  19. public function commodity(){
  20. return $this->belongsTo('App\Commodity','commodity_id','id');
  21. }
  22. public function signCommodityName(){
  23. return $this->hasOne('App\Sign','signable_id','id')
  24. ->where('signable_type','processes_contents')->where('field','commodity_name');
  25. }
  26. public function signCommoditySku(){
  27. return $this->hasOne('App\Sign','signable_id','id')
  28. ->where('signable_type','processes_contents')->where('field','commodity_sku');
  29. }
  30. public function getCommodityNameAttribute()
  31. {
  32. return $this['commodity']? $this['commodity']['name']:null;
  33. }
  34. public function getSignCommodityNameMarkAttribute()
  35. {
  36. return $this['signCommodityName']? $this['signCommodityName']['mark']:null;
  37. }
  38. public function getSignCommoditySkuMarkAttribute()
  39. {
  40. return $this['signCommodityName']? $this['signCommoditySku']['mark']:null;
  41. }
  42. }