vuer / notes
Model notes.
Installs: 3 857
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 0
Open Issues: 0
Type:utils
This package is auto-updated.
Last update: 2024-10-23 04:56:45 UTC
README
Installation
You can install this package via composer using this command:
composer require vuer/notes
Next, you must install the service provider:
// config/app.php 'providers' => [ ... Vuer\Notes\NotesServiceProvider::class, ];
Publish migration and configuration file:
php artisan vendor:publish
After the migration has been published you can create the notes table by running the migrations:
php artisan migrate
If you want you can change models in notes config file (config/notes.php):
/*
* The class name of the note model to be used.
*/
'note_model' => \Vuer\Notes\Models\Note::class,
/*
* The class name of the author model to be used.
*/
'author_model' => \App\User::class,
Usage
Preparing your model
To associate notes with a model, the model must implement the following trait:
namespace App\Models; use Illuminate\Database\Eloquent\Model; use Vuer\Notes\Traits\HasNotes; class User extends Model { use HasNotes; ... }
Creating notes
You can create a note for the model like this:
$user = User::find(1); $note = $user->createNote(['body' => 'Lorem ipsum...']);
To save note author you should add second parameter:
$note = $user->createNote(['body' => 'Lorem ipsum...'], \Auth::user());
If you want to save author name you need to create getNotesAuthorName method in author class. It is useful if you want to delete users and keep informations about notes authors.
<?php namespace App; use Illuminate\Foundation\Auth\User as Authenticatable; use Vuer\Notes\Traits\HasNotes; class User extends Authenticatable { use HasNotes; public function getNotesAuthorName() { return trim(sprintf('%s %s', $this->name, $this->surname)); } }
You can get all notes or 1 note:
$notes = $user->notes; $note = $user->note;
You can use it to create model description:
protected $fillable = [ 'description', ]; public function setDescriptionAttribute($value) { $this->updateOrCreateNote([], ['body' => $value]); } public function getDescriptionAttribute() { return $this->note ? $this->note->body : ''; }