Laravel Varbox 以编程方式获取草稿项目

Laravel Varbox get drafted items programatically

我创建了一个 draftable 自定义实体。我注意到管理员可以将其保存为草稿或发布。

但是,我想知道如何获取所有 draftedpublished 记录以及如何确定单个记录实例是 drafted 还是 published?

谢谢!

鉴于你所说的,我假设你已经在你的模型上使用了 Varbox\Traits\IsDraftable 特征。

您可以使用 trait 公开的查询范围来仅获取您起草或发布的记录,如下所示:

$onlyPublishedRecords = YourModel::withoutDrafts()->get();

$onlyDraftedRecords = YourModel::onlyDrafts()->get();

文档部分供参考:https://varbox.io/docs/1.x/draft-records#query-scope


要回答问题的第二部分,您可以使用 isDrafted 方法检查记录是否起草或发布:

$model = YourModel::find($id);

dump($model->isDrafted()); // true or false

这里是文档部分供参考:https://varbox.io/docs/1.x/draft-records#check-if-draft