BaseModel.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. namespace App\Models;
  3. use DateTimeInterface;
  4. use Illuminate\Database\Eloquent\Factories\HasFactory;
  5. use Illuminate\Database\Eloquent\Model;
  6. class BaseModel extends Model
  7. {
  8. use HasFactory;
  9. /**
  10. * @param DateTimeInterface $date
  11. * @return string
  12. * 重写模型的serializeDate方法
  13. * "created_at": "2022-05-11T14:31:02.000000Z", 格式变为 "created_at": "2022-05-11 14:45:25",
  14. */
  15. protected function serializeDate(DateTimeInterface $date)
  16. {
  17. return $date->format('Y-m-d H:i:s');
  18. }
  19. protected function getCreatedAtAttribute($value)
  20. {
  21. return date('Y-m-d H:i', strtotime($value));
  22. }
  23. protected function getUpdatedAtAttribute($value)
  24. {
  25. return date('Y-m-d H:i', strtotime($value));
  26. }
  27. protected function getDeletedAtAttribute($value)
  28. {
  29. return date('Y-m-d H:i', strtotime($value));
  30. }
  31. //去掉 created_at, updated_at, deleted_at
  32. public static function formatData($data)
  33. {
  34. if(isset($data['created_at'])){
  35. unset($data['created_at']);
  36. }
  37. if(isset($data['updated_at'])){
  38. unset($data['updated_at']);
  39. }
  40. if(isset($data['deleted_at'])){
  41. unset($data['deleted_at']);
  42. }
  43. return $data;
  44. }
  45. public function scopeNotDelete($query)
  46. {
  47. return $query->whereNull('deleted_at');
  48. }
  49. }