36 lines
1.0 KiB
PHP
36 lines
1.0 KiB
PHP
<?php
|
|
|
|
namespace Modules\Pages\Models;
|
|
|
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Illuminate\Database\Eloquent\Relations\HasMany;
|
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
|
use Modules\Content\Models\PageContent;
|
|
use Modules\Localization\Concerns\HasTranslations;
|
|
use Modules\Sites\Concerns\BelongsToSites;
|
|
use Modules\Workflow\Concerns\HasWorkflow;
|
|
|
|
final class Page extends Model
|
|
{
|
|
use BelongsToSites, HasFactory, HasTranslations, HasWorkflow, SoftDeletes;
|
|
|
|
protected $table = 'pages';
|
|
|
|
protected $fillable = ['title', 'slug', 'summary', 'content', 'status', 'published_at', 'expires_at', 'template', 'is_home'];
|
|
|
|
protected function casts(): array
|
|
{
|
|
return [
|
|
'published_at' => 'datetime',
|
|
'expires_at' => 'datetime',
|
|
'is_home' => 'boolean',
|
|
];
|
|
}
|
|
|
|
public function contentPlacements(): HasMany
|
|
{
|
|
return $this->hasMany(PageContent::class)->orderBy('region')->orderBy('sort_order');
|
|
}
|
|
}
|