#Eloquent Meta#
Eloquent meta provides an easy way to implement schemaless meta data stores for Eloquent
models.
##Installation##
Add the package via composer:
composer require boxed-code/laravel-eloquent-meta
then add the following
line to the providers
key within your config/app.php
file:
BoxedCode\Eloquent\Meta\MetaServiceProvider::class
You can then create a meta table migration using the artisan command:
php artisan make:meta-migration
and then call migrate
php artisan migrate
##Basic Usage##
There are two main methods of enabling a meta store on your models:
###Using the Metable trait###
The Metable
trait adds the basic meta store relation to your model so that it can be accessed like:
class MyModel extends Model
{
use Metable;
}
...
$model = new MyModel();
// Access via magic accessors on the meta collection.
$model->meta->foo = 'bar';
echo $model->meta->foo; // prints 'bar'
// Access via the collection
$item = $model->meta->whereKey('foo')->first();
echo $item; // prints 'bar'
###Using the FluentMeta trait###
The FluentMeta
trait enables meta access on the model directly like:
use BoxedCode\Eloquent\Meta\FluentMeta;
use Illuminate\Database\Eloquent\Model;
class MyModel extends Model
{
use FluentMeta;
}
...
$model = new MyModel();
// Access via magic accessors on the model.
$model->foo = 'bar';
echo $model->foo; // prints 'bar'
// Access via the collection
$item = $model->meta->whereKey('foo')->first();
echo $item; // prints 'bar'
##License## See the attached license file.