arafatkn / laravel-meta
任何模型中保存元数据。
1.0.0
2023-04-09 15:33 UTC
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-09-18 21:40:26 UTC
README
Laravel Meta
保存任何模型的元数据(键,值)。
有时,我们可能需要为某些对象存储一些额外的信息。在某些情况下,添加新列不是好的解决方案。此包可以解决这些问题。
该包将在数据库中创建一个名为 laravel_metas
的表,包含键、值和metable列。然而,表名可以通过更新 config/meta.php
中的 table_name 来更改。注意:更改表名后,您需要从DB中删除先前表(如果存在),并从 migrations
表中删除 create_meta_table
行。然后重新运行 php artisan migrate
命令。
安装
您可以通过composer安装此包
composer require arafatkn/laravel-meta
如果您使用Laravel自动发现包,则无需手动添加ServiceProvider。
无自动发现
如果您不使用自动发现,请将以下ServiceProvider添加到 config/app.php
文件中的 $providers
数组中。
Arafatkn\LaravelMeta\MetaServiceProvider::class,
如果您想更改元数据表名,则首先发布配置文件。
php artisan vendor:publish --provider="Arafatkn\LaravelMeta\MetaServiceProvider"
然后,更新 config/meta.php
中的 table_name
值。
然后,您可以运行迁移命令以创建数据库表。
php artisan migrate
使用方法
将 Arafatkn\LaravelMeta\Metable
特性添加到需要它的模型中。
use \Illuminate\Database\Eloquent\Model; use \Arafatkn\LaravelMeta\Metable; class Post extends Model { use Metable; }
然后,您可以像下面这样访问
$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');
贡献
如果您想贡献,请按照Laravel贡献指南提交pull request。
许可证
MIT许可证(MIT)。请参阅许可证文件以获取更多信息。