seriousjelly/laravel-draftable

A Eloquent Draftable trait for Laravel

dev-master 2017-03-16 12:32 UTC

This package is auto-updated.

Last update: 2024-10-29 04:20:03 UTC


README

Easily add status to your models in Laravel 5.

Latest Stable Version Total Downloads Latest Unstable Version License

Installation and Requirements

  1. Install the seriousjelly/laravel-draftable package via composer:

    $ composer require seriousjelly/laravel-draftable
  2. Add the service provider (config/app.php for Laravel 5):

    # Add the service provider to the `providers` array
    'providers' => array(
        ...
        'Seriousjelly\Draftable\ServiceProvider',
    )
  3. 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.e php 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