freshwork/metable
Composer 安装命令:
composer require freshwork/metable
包简介
Add metadata to your eloquent models
README 文档
README
Install
composer require freshwork/metable
Add Freshwork\Metable\MetableServiceProvider to your app.php config file
'providers' => [ ... Freshwork\Metable\MetableServiceProvider::class ]
Run laravel migrations to install metas table on your database
php artisan migrate
Usage
Add Freshwork\Metable\Traits\Metable trait to your eloquent model
namespace App; use Freshwork\Metable\Traits\Metable; class Post extends Model { use Metable; ... }
Add meta
By the moment, addMeta inmediately executes a sql query to save.
$post->addMeta('key', 'value'); $post->addMeta('foo', ['bar', 'baz']); //saved as json $post->addMeta('third', 'value1'); $post->addMeta('third', 'value2');
Get meta
Remember that you can add multiple meta for the same key, so by default, getMeta() returns an array, even if there are just one value for that key. You can use the single param to get the first value directly
getMeta($key, $single = false, $cacheAll = true)
Eager loading: If $cacheAll is set to true, when you getMeta you retrieve all the metas of the model, so the next getMeta call don't touch the database.
$post->getMeta('key'); // ['value'] $post->getMeta('foo'); // [ ['bar', 'baz'] ] $post->getMeta('third'); // [ 'value1', 'values2' ] //If you want to get the first element of the array $post->getMeta('key', true); // 'value' $post->getMeta('foo', true); // ['bar', 'baz'] $post->getMeta('third', true); // 'value1'
Get all meta
//Load $post->metadata variable $post->loadMeta(); //Then you can dd($post->metadata->key); //['value']
Remove meta
//Load $post->metadata variable $post->removeMeta('key'); //remove all the ocurrences of metas with that key in the current model
统计信息
- 总下载量: 205
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 4
- 点击次数: 2
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2016-10-06