ican-agency / laravel-commentable by developer

Allows for threaded comments to be added to multiple and different models.
58
2
7
Package Data
Maintainer Username: developer
Maintainer Contact: developer@ican.ie (ICAN)
Package Create Date: 2016-12-16
Package Last Update: 2016-12-16
Language: PHP
License: MIT
Last Refreshed: 2024-11-11 15:13:48
Package Statistics
Total Downloads: 58
Monthly Downloads: 2
Daily Downloads: 1
Total Stars: 2
Total Watchers: 7
Total Forks: 1
Total Open Issues: 1

Laravel Commentable

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

Based on now defunct Lanz/Laravel Commentable.

This package use Nested Sets pattern with Baum.

More information about Nested Sets

Installation

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

"require": {
  "ican-agency/laravel-commentable": "~1.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 'Ican\Commentable\CommentableServiceProvider' to the end of the $providers array.

'providers' => [

    'Illuminate\Foundation\Providers\ArtisanServiceProvider',
    'Illuminate\Auth\AuthServiceProvider',
    ...
    'Ican\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 Ican\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 Ican\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.