Easily add status to your models in Laravel 5.
-
Install the
seriousjelly/laravel-draftable
package via composer:$ composer require seriousjelly/laravel-draftable
-
Add the service provider (
config/app.php
for Laravel 5):# Add the service provider to the `providers` array 'providers' => array( ... 'Seriousjelly\Draftable\ServiceProvider', )
-
Ensure that your migrations contain a
status
column by copy & pasting the below into your table migration file:# Add a status column to the table, feel free to change the default value. $table->boolean('status')->default(0);
Your models should use Draftable's trait:
use Seriousjelly\Draftable\DraftableTrait;
class MyModel extends Model
{
use Draftable;
}
Your model is now draftable!
By default all records that have a status of 0 will be excluded from your query results. To include draft records, all you need to do is call the withDrafts()
method on your query.
// Returns only live data
Posts::get();
//Returns live & draft data
Posts::withDrafts()->get();
- Add onlyDrafts() method.
- Add artisan command to create
status
column on a table you choose (i.ephp artisan draftable:table table_name
. - Allow the user to specify the column name in this package config (currently hardcoded to status).
Laravel-Draftable was written by Chris Bratherton and released under the MIT License. See the LICENSE file for details.
Copyright 2015 Chris Bratherton