miladev / lara-meta
与任何模型一起保存元数据。
1.0
2023-08-13 07:41 UTC
Requires
- php: ^7.3|^8
- illuminate/database: ^7|^8|^9
- illuminate/support: ^7|^8|^9
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-13 10:28:45 UTC
README
保存元数据(键,值)与任何模型。
有时,我们可能需要为某些对象存储少量额外信息。在某些情况下,添加新列不是好的解决方案。这个包可以解决这些问题。
该包将在数据库中创建一个名为 laravel_metas
的表,包含键、值和metable列。然而,表名可以通过更新 config/meta.php
中的 table_name 来更改。注意:更改表名后,您需要从DB中删除之前存在的表,并从 migrations
表中删除 create_meta_table
行。然后重新运行 php artisan migrate
命令。
安装
您可以通过composer安装此包。
composer require miladev/lara-meta
如果您使用Laravel包自动发现,则无需手动添加ServiceProvider。
无自动发现
如果您不使用自动发现,请将以下ServiceProvider添加到 config/app.php
文件中的 $providers
数组中。
Miladev\LaravelMeta\MetaServiceProvider::class,
如果想要更改元数据表名,首先发布配置文件。
php artisan vendor:publish --provider="Miladev\LaravelMeta\MetaServiceProvider"
然后,更新 config/meta.php
中的 table_name
值。
然后您可以运行迁移命令以创建数据库表。
php artisan migrate
用法
将 Miladev\LaravelMeta\Metable
特性添加到需要的位置的模型中。
use \Illuminate\Database\Eloquent\Model; use \Miladev\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'); $post->findMeta('value_here');
贡献
如果您想贡献,请根据Laravel贡献指南打开pull request。
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。