Bring the power of Wordpress drafts posts to your Laravel application , with simple functions and steps
You can install the package via composer:
composer require laravel-creative/draftable
after installing the package go a head and run migrate.
php artisan migrate
In your model add
use DraftableModel;
to save the model as draft you can use php $model->saveAsDraft()
method
$faker = Factory::create();
$article=new Article();
$article->title=$faker->paragraph(1);
$article->content=$faker->paragraph;
$article->saveAsDraft();
in case you want to save it in its own table but also you need to make a draft of this update you can use
$article->saveWithDraft();
to assign the draft for specific user
$article::setUser($user);
To get all drafts for specific user
$draftsArticles=Article::setUser($user)->getAllDrafts();
you can save data with the draft like (publish_date) or anything else.
$article->saveAsDraft();
$article->draft->setData('publish_date',Carbon::now()->addDay());
//you can get the data with this method
$article->draft->getData('publish_date');
To get all drafts for the model use php Model::getAllDrafts()
$drafts=Article::getAllDrafts();
to get published drafts only use php Model::getPublishedDraft()
$publishedDrafts=Article::getPublishedDraft();
to get unpublished drafts only use php Model::getUnPublishedDraft()
$unPublishedDrafts=Article::getUnPublishedDraft();
to publish the draft you can use php $draftsArticle->publish();
$draftsArticles=Article::getUnPublishedDraft();
foreach($draftsArticles as $draftsArticle)
{
$draftsArticle->publish();
}
once you saved the model with
$article->saveWithDraft();
you can access all drafts for this model with this method
$article = Article::first();
$articleDrafts=$article->drafts;
if you want Eloquent model for specific draft use php $draft->model()
$articleDrafts[0]->model()
after selecting the draft for the model and you want to restore it as current published one
you can use php $draft->restore()
$article = Article::first();
$articleDraft=$article->drafts()->first();
$articleDraft->restore();
composer test
Please see CHANGELOG for more information what has changed recently.
Please see CONTRIBUTING for details.
If you discover any security related issues, please email mustafakhaled.dev@gmail.com instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.