A package to enable assigning notes to Eloquent Models
digitalcloud/laravel-model-notes is a Laravel package for a package to enable assigning notes to eloquent models.
It currently has 8 GitHub stars and 34.249 downloads on Packagist (latest version v1.1).
Install it with composer require digitalcloud/laravel-model-notes.
Discover more Laravel packages by digitalcloud
or browse all Laravel packages to compare alternatives.
Last updated
This package allows you to add notes to your model.
Suppose you are working on model, say Invoice model, and this invoice need to pass some management process. Each management state need the manager to add some notes on this invoice, and you need to track all notes for this invoice. This package allow you to do this job just by adding some trait to your model.
This package provides a HasNotes trait that, once installed on a model, allows you to do things like this:
// add a note
$model->setNote('New Note Here');
// get all notes
$model->notes();
You can install the package via composer:
composer require digitalcloud/laravel-model-notes
You must publish the migration with:
php artisan vendor:publish --provider="DigitalCloud\ModelNotes\ModelNotesServiceProvider" --tag="migrations"
Migrate the notes table:
php artisan migrate
Optionally you can publish the config-file with:
php artisan vendor:publish --provider="DigitalCloud\ModelNotes\ModelNotesServiceProvider" --tag="config"
This is the contents of the file which will be published at config/models-notes.php
return [
/*
* The class name of the note model that holds all notes.
*
* The model must be or extend `DigitalCloud\ModelNotes\Note::class`.
*/
'note_model' => DigitalCloud\ModelNotes\Note::class,
/*
* The name of the column which holds the ID of the model related to the notes.
*
* You can change this value if you have set a different name in the migration for the notes table.
*/
'model_primary_key_attribute' => 'model_id',
];
Add the HasNotes trait to a model you like to use notes on.
use DigitalCloud\ModelNotes\HasNotes;
class YourEloquentModel extends Model
{
use HasNotes;
}
You can add a new note like this:
$model->setNote('new note');
you can get all associated notes of a model like this:
$allNotes = $model->notes;
You can change the model used by specifying a class name in the note_model key of the model-notes config file.
You can change the column name used in the note table (model_id by default) when using a custom migration where you changed
that. In that case, simply change the model_primary_key_attribute key of the model-notes config file.