Installation
Require the package, then publish and run its migration. The service provider is auto-discovered — no manual registration:
composer require roundly-consulting/comments-for-laravel
php artisan vendor:publish --tag="comments-migrations"
php artisan migrateMigrations are publish-only — nothing is loaded from the package, so without the publish step php artisan migrate will not create the tables. The publish copies one migration (create_comments_table) that creates the comments, comment_mentions and comment_locks tables; republishing with --force overwrites that same file instead of adding a second copy.
If the models you comment on use UUID or ULID keys, set COMMENTS_KEY_TYPE before you migrate — see Configuration.
Sibling package tables
Likes, Reports, Approvals and Media Library for Laravel are pulled in as hard dependencies and ship their own migrations. Publish and run them too, so comment likes, reports and attachments have somewhere to live:
php artisan vendor:publish --tag="likes-migrations"
php artisan vendor:publish --tag="reports-migrations"
php artisan vendor:publish --tag="approvals-migrations"
php artisan vendor:publish --tag="media-migrations"
php artisan migrateConfig & translations
The config file is optional — every key has a default. Publish it only to override, and publish the language files if you want to translate the package’s messages:
php artisan vendor:publish --tag="comments-config"
php artisan vendor:publish --tag="comments-translations"The package exposes three publish tags: comments-migrations, comments-config and comments-translations.
Check the active setup
The package reports its active configuration to Laravel’s about command — model, approval, length and depth limits, blocklist size (a count, never the terms), authorization, auto-moderation and inline media:
php artisan about --only=commentsShow your open-source love
This package is free and MIT-licensed. If it saves you time, a one-off donation or a Patreon membership keeps it maintained, tested and documented.
More ways to support, including cryptoBy donating, you agree to our donation terms.
Want this built into your product?
We integrate our packages into custom Laravel and AI builds. Tell us what you're working on and we'll reply within 48 hours.