seriousjelly / laravel-draftable
A Eloquent Draftable trait for Laravel
Requires
- php: >=5.4.0
- illuminate/config: ~5.0
- illuminate/support: ~5.0
Requires (Dev)
- phpunit/phpunit: ~4.0
This package is auto-updated.
Last update: 2024-10-29 04:20:03 UTC
README
Easily add status to your models in Laravel 5.
Installation and Requirements
-
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);
Updating your Eloquent Models
Your models should use Draftable's trait:
use Seriousjelly\Draftable\DraftableTrait; class MyModel extends Model { use Draftable; }
Your model is now draftable!
Using this trait
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();
Still To Do
- 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).
Copyright and License
Laravel-Draftable was written by Chris Bratherton and released under the MIT License. See the LICENSE file for details.
Copyright 2015 Chris Bratherton