neon / model-publishable
为内容类设置时间戳以处理发布和过期。
1.0.0
2023-03-21 15:50 UTC
Requires
- php: >=8.0.2
- laravel/framework: >=9.0
README
处理任何模型以使其可发布。
要求
"neon/model-uuid": "^1.0"
安装
轻松安装 composer 包
composer require neon/model-publishable
用法
数据库
在数据库中,Publishable 需要两个字段 datetime
- published_at 以存储显示的开始时间。
$table->timestamp('published_at') ->nullable() ->default(null);
- expired_at 以存储记录将过期的时间。
$table->timestamp('expired_at') ->nullable() ->default(null);
两个字段都可为空,默认值是 NULL。
模型
在模型中,我们只需应用 Publishable 特性,如下所示
use Neon\Model\Traits\Publishable;
class AwesomeModel extends Model
{
use Publishable;
}
然后你可以使用一些常用方法,比如
- 要发布模型,存在
$model->publish()
方法。 - 如果你必须在一个特定时间发布,可以使用
$model->publishedAt($timestamp)
方法。 - 要使其过期,可以使用
$model->expire()
和$model->expiredAt($timestamp)
方法。
Published
范围会自动应用于模型。如果你想获取所有模型,可以使用 ->withNotPublished()
方法,那么范围将不会应用。
事件
此特性添加了一些新的 Eloquent 模型事件
publishing
会在调用publish()
或publishedAt()
方法后,但保存之前被调用。- 保存后,会触发
published
事件。 - 对于过期,有
expiring
和expired
方法。
许可
MIT 许可证 (MIT)。请参阅 许可文件 以获取更多信息。