isthegeek/laravel-commentable

Allows for threaded comments to be added to multiple and different models.

This package's canonical repository appears to be gone and the package has been frozen as a result.

2.0 2017-01-07 14:18 UTC

This package is not auto-updated.

Last update: 2024-03-11 12:35:36 UTC


README

Allows for threaded comments to be added to multiple and different models within your app for Laravel 4 and 5.

For Laravel 4, look at the 1.0 branch.

This package use Nested Sets pattern with Baum.

More information about Nested Sets

Installation

Edit your project's composer.json file to require isthegeek/laravel-commentable.

"require": {
  "isthegeek/laravel-commentable": "~2.0"
}

Next, update Composer from the terminal.

composer update

As with most Laravel packages you'll need to register Commentable service provider. In your config/app.php add 'Isthegeek\Commentable\CommentableServiceProvider' to the end of the $providers array.

'providers' => [

    'Illuminate\Foundation\Providers\ArtisanServiceProvider',
    'Illuminate\Auth\AuthServiceProvider',
    ...
    'Isthegeek\Commentable\CommentableServiceProvider',

],

Getting started

After the package is correctly installed, you need to generate migration.

php artisan commentable:migration

It will generate the <timestamp>_create_comments_table.php migration. You may now run it with the artisan migrate command:

php artisan migrate

After the migration, one new table will be present, comments.

Usage

You need to set on your model that it acts as commentable.

<?php namespace App;

use Isthegeek\Commentable\Commentable;
use Illuminate\Database\Eloquent\Model;

class Post extends Model
{

    use Commentable;

}

Now, your model has access to comments method.

$post = Post::first();

$comment = new Isthegeek\Commentable\Comment;
$comment->body = 'My first comment!';
$comment->user_id = \Auth::id();

$post->comments()->save($comment);

dd(Post::first()->comments);

For all information about threaded comment, look at the documentation on Baum.