NewsPhoto.php 847B

1234567891011121314151617181920212223242526272829303132
  1. <?php
  2. namespace App\Models;
  3. use Illuminate\Database\Eloquent\Casts\Attribute;
  4. use Illuminate\Database\Eloquent\Factories\HasFactory;
  5. use Illuminate\Database\Eloquent\Model;
  6. use Illuminate\Database\Eloquent\SoftDeletes;
  7. use Illuminate\Support\Facades\Storage;
  8. use App\Models\News;
  9. use Spatie\Translatable\HasTranslations;
  10. class NewsPhoto extends Model
  11. {
  12. use HasFactory, HasTranslations;
  13. protected $guarded = ['id'];
  14. public $timestamps = false;
  15. protected $appends = ['news_photo_img'];
  16. public $translatable = ['image_alt'];
  17. public function news(){
  18. return $this->belongsTo(News::class);
  19. }
  20. protected function newsPhotoImg(): Attribute
  21. {
  22. return Attribute::make(
  23. get: fn ($value) => is_null($this->image_url) ? null :Storage::disk('public')->url($this->image_url),
  24. );
  25. }
  26. }