Skip to content

Latest commit

 

History

History
executable file
·
98 lines (70 loc) · 1.86 KB

README.md

File metadata and controls

executable file
·
98 lines (70 loc) · 1.86 KB

Laravel Commentable

Installation

Require this package, with Composer, in the root directory of your project.

$ composer require faustbrian/laravel-commentable

And then include the service provider within app/config/app.php.

'providers' => [
    BrianFaust\Commentable\CommentableServiceProvider::class
];

To get started, you'll need to publish the vendor assets and migrate:

php artisan vendor:publish --provider="BrianFaust\Commentable\CommentableServiceProvider" && php artisan migrate

Usage

Setup a Model

<?php

namespace App;

use BrianFaust\Commentable\HasCommentsTrait;
use BrianFaust\Commentable\Interfaces\HasComments;
use Illuminate\Database\Eloquent\Model;

class Post extends Model implements HasComments
{
    use HasCommentsTrait;
}

Create a comment

$user = User::first();
$post = Post::first();

$comment = $post->comment([
    'title' => 'Some title',
    'body' => 'Some body',
], $user);

dd($comment);

Create a comment as a child of another comment (e.g. an answer)

$user = User::first();
$post = Post::first();

$parent = $post->comments->first();

$comment = $post->comment([
    'title' => 'Some title',
    'body' => 'Some body',
], $user, $parent);

dd($comment);

Update a comment

$comment = $post->updateComment(1, [
    'title' => 'new title',
    'body' => 'new body',
]);

Delete a comment

$post->deleteComment(1);

Count comments an entity has

$post = Post::first();

dd($post->commentCount());

Security

If you discover a security vulnerability within this package, please send an e-mail to Brian Faust at [email protected]. All security vulnerabilities will be promptly addressed.

License

The The MIT License (MIT). Please check the LICENSE file for more details.