Files
moonwell-web/app/Models/News.php
T
2026-03-22 17:28:14 +04:00

49 lines
986 B
PHP

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\Storage;
class News extends Model
{
protected $fillable = [
'title',
'body',
'image_path',
'sort_order',
'is_published',
'created_by_account_id',
'created_by_username',
];
protected function casts(): array
{
return [
'is_published' => 'bool',
];
}
public function scopeOrdered(Builder $query): Builder
{
return $query
->orderBy('sort_order')
->orderByDesc('id');
}
public function scopePublished(Builder $query): Builder
{
return $query->where('is_published', true);
}
public function getImageUrlAttribute(): ?string
{
if (! $this->image_path) {
return null;
}
return Storage::disk('public')->url($this->image_path);
}
}