Download the PHP package danielefavi/laravel-metadata without Composer
On this page you can find all versions of the php package danielefavi/laravel-metadata. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download danielefavi/laravel-metadata
More information about danielefavi/laravel-metadata
Files in danielefavi/laravel-metadata
Package laravel-metadata
Short Description Laravel package for handling metadata for all your models.
License MIT
Informations about the package laravel-metadata
Laravel Metadata - Metadata for all your models
Laravel Metadata let you store extra data using your model without adding any extra field to your model.
Installation
Install the package via composer:
Then add in the config/app.php
file the entry DanieleFavi\Metadata\MetaServiceProvider::class,
in the providers
section:
Then run the migration:
How to use Laravel Metadata in your model
After installing the package you have to add the trait HasMetadata
in your model.
For example
Now your model has all the methods to handle the metadata.
Usage
Saving the metadata
Using the method saveMeta
you can save (store or update) a metadata:
With saveMetas
you can save multiple metadata at once:
Getting the metadata
The method getMeta
retrieve the metadata for the given key:
You can retrieve the metadata in bulk
Getting the meta object by key
If you need to get the metadata object (and not just the value as getMeta
and getMetas
) you can use the method getMetaObj
:
Deleting the metadata
Getting the meta objects of the model
Getting the collection of metadata attached to the model:
Querying
Getting all the users that have the hair color brown or pink.
Getting all the users with the hair color brown or pink and with a dog named Charlie:
Advanced Metadata Query
You can query the metadata using has
, whereHas
and with
. For example:
Important: when doing your custom queries remember to JSON encode the metavalue because in the DB the metavalue is stored as JSON.
In the example above
Eager Loading the Metadata
Getting all the users with all their metadata:
Or lazy loading the metadata: