Laravel-Metable is a package for easily attaching arbitrary data to Eloquent models.
Attach some metadata to an eloquent model
$post = Post::create($this->request->input());
$post->setMeta('color', 'blue');
Query the model by its metadata
$post = Post::whereMeta('color', 'blue');
Retrieve the metadata from a model
$value = $post->getMeta('color');
composer require plank/laravel-metable
config/app.php
. In Laravel versions 5.5 and beyond, this step can be skipped if package auto-discovery is enabled.'providers' => [
...
Plank\Metable\MetableServiceProvider::class,
...
];
config/metable.php
) of the package using artisan.php artisan vendor:publish --provider="Plank\Metable\MetableServiceProvider"
php artisan migrate
Plank\Metable\Metable
trait to any eloquent model class that you want to be able to attach metadata to.Note: If need a more generic way to reference different Metable Model classes, you can optionally apply the Plank\Metable\MetableInterface
to your models.
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Plank\Metable\Metable;
class Post extends Model
{
use Metable;
//...
}
The full documentation is available on ReadTheDocs.
This package is released under the MIT license (MIT).
Plank is a web development agency based in Montreal, Canada.