arafatkn / laravel-meta
Save meta with any model.
Installs: 1
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:package
Requires
- php: ^7.3|^8
- illuminate/database: ^7|^8|^9|^10
- illuminate/support: ^7|^8|^9|^10
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.8
- orchestra/testbench: ^7.5
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-10-18 21:55:09 UTC
README
Laravel Meta
Save metadata (key, value) with any model.
Sometimes, we may need to store few extra information for some objects. In some situation, it's not good solution to add new columns. This package can solve those issues.
The package will create a table in database named laravel_metas
with key, value and metable column.
However, table name can be changed by updating table_name in config/meta.php
.
N.B: After changing table_name, you need to delete the previous table (if exists) from DB and delete the create_meta_table
row from migrations
table.
Then re-run the php artisan migrate
command again.
Installation
You can install the package via composer:
composer require arafatkn/laravel-meta
If you are using Laravel Package Auto-Discovery, you don't need you to manually add the ServiceProvider.
Without auto-discovery:
If you don't use auto-discovery, add the below ServiceProvider to the $providers
array in config/app.php
file.
Arafatkn\LaravelMeta\MetaServiceProvider::class,
If you want to change the meta table name, then first publish the config file.
php artisan vendor:publish --provider="Arafatkn\LaravelMeta\MetaServiceProvider"
Then, update the table_name
value in config/meta.php
.
Then you can run migration command to create database table.
php artisan migrate
Usage
Add Arafatkn\LaravelMeta\Metable
trait to models where you need.
use \Illuminate\Database\Eloquent\Model; use \Arafatkn\LaravelMeta\Metable; class Post extends Model { use Metable; }
Then you can access like below:
$post = Post::withMetas()->first();
$post = Post::first(); $post->metas;
$post = Post::first(); $post->saveMeta('meta_key_here', 'value_here'); $post->getMeta('meta_key_here', 'default_value'); $post->updateMeta('meta_key_here', 'value_here_new'); $post->deleteMeta('meta_key_here');
Contribute
If you want to contribute, open a pull request by following Laravel contribution guide.
License
The MIT License (MIT). Please see License File for more information.