Resource.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. namespace App\Repositories\Models\Base;
  3. use App\Repositories\Models\Model;
  4. use Illuminate\Database\Eloquent\Builder;
  5. use Illuminate\Support\Facades\App;
  6. use Prettus\Repository\Contracts\Transformable;
  7. use Prettus\Repository\Traits\TransformableTrait;
  8. /**
  9. * Class Resource.
  10. *
  11. * @package namespace App\Repositories\Models;
  12. */
  13. class Resource extends Model implements Transformable
  14. {
  15. protected $table = 'base_resources';
  16. use TransformableTrait;
  17. /**
  18. * The attributes that are mass assignable.
  19. *
  20. * @var array
  21. */
  22. protected $fillable = ['name', 'original_name', 'path', 'disk', 'url', 'size', 'status'];
  23. protected static function booted()
  24. {
  25. // $language = request()->header('language', App::getLocale());
  26. // switch ($language) {
  27. // case 'zh_CN':
  28. // default:
  29. // $language = 'zh_CN';
  30. // break;
  31. // case 'en':
  32. // $language = 'en';
  33. // break;
  34. // }
  35. // static::addGlobalScope('language', function (Builder $builder) use ($language) {
  36. // $builder->where('language', $language);
  37. // });
  38. //
  39. // static::creating(function ($model) use ($language) {
  40. // if (!(in_array('language', array_keys($model->attributes)) && !empty($model->attributes['language']))) {
  41. // $model->language = $language;
  42. // }
  43. // });
  44. }
  45. public function getUrlAttribute($val)
  46. {
  47. if (isset($this->attributes['disk']) && $this->attributes['disk'] == 'public') {
  48. return path_to_url($this->attributes['path']);
  49. }
  50. return $val;
  51. }
  52. }