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

Ste*_*ros 2 publish laravel eloquent

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

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

谢谢!

小智 6

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

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

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

$onlyDraftedRecords = YourModel::onlyDrafts()->get();
Run Code Online (Sandbox Code Playgroud)

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


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

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

dump($model->isDrafted()); // true or false
Run Code Online (Sandbox Code Playgroud)

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