arafatkn/laravel-meta

任何模型中保存元数据。

1.0.0 2023-04-09 15:33 UTC

This package is auto-updated.

Last update: 2024-09-18 21:40:26 UTC


README

Laravel Meta

Laravel Meta

Latest Stable Version License Total Downloads

保存任何模型的元数据(键,值)。

有时,我们可能需要为某些对象存储一些额外的信息。在某些情况下,添加新列不是好的解决方案。此包可以解决这些问题。

该包将在数据库中创建一个名为 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)。请参阅许可证文件以获取更多信息。