LaravelDrafts——简单的Drop-in草稿和修订系统

119 阅读1分钟

LaravelDrafts是一个简单的Drop-in草稿和修订系统,用于Eloquent模型。这个包也支持相关模型的草稿;你可以控制在发布或草稿模式下保存模型。

要开始使用这个包,你的项目将使用提供的HasDrafts trait。

use Illuminate\Database\Eloquent\Model;
use Oddvalue\LaravelDrafts\Concerns\HasDrafts;
 
class Post extends Model
{
    use HasDrafts;
    // ...
}

配置好特质后,你可以使用下面的API来控制创建一个发布的模型或草稿。

// By default, the record is published
Post::create([
    'title' => 'Foo',
    // ...
]);
 
// You can set the record as a draft in a few different ways:
 
// Via the `is_published` flag
Post::create([
    'title' => 'Foo',
    'is_published' => false,
]);
 
// Calling `createDraft`
Post::createDraft(['title' => 'Foo']);
 
// Using the `saveAsDraft` method on a model
Post::make(['title' => 'Foo'])->saveAsDraft();

同样地,你可以更新一个模型,把它保持为草稿。

$post->updateAsDraft(['title' => 'Bar']);
 
// Or
 
$post->title = 'Bar';
$post->saveAsDraft();

你也可以访问草稿的修订,并配置在数据库中保留多少总修订。readme是开始使用这个包的一个好地方。