Laravel Varbox 以编程方式获取草稿项目
Laravel Varbox get drafted items programatically
我创建了一个 draftable
自定义实体。我注意到管理员可以将其保存为草稿或发布。
但是,我想知道如何获取所有 drafted
或 published
记录以及如何确定单个记录实例是 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
我创建了一个 draftable
自定义实体。我注意到管理员可以将其保存为草稿或发布。
但是,我想知道如何获取所有 drafted
或 published
记录以及如何确定单个记录实例是 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