secretwebmaster/laravel-optionable

允许任何Eloquent模型拥有自己的选项,例如用户选项、页面选项等。

v1.2.0 2024-05-01 08:25 UTC

This package is auto-updated.

Last update: 2024-10-01 00:25:58 UTC


README

允许任何Eloquent模型拥有选项,例如用户选项、页面选项等。

安装

通过Composer安装此包。

在终端中运行Composer require命令

composer require secretwebmaster/laravel-optionable

然后运行迁移以创建我们的迁移表

php artisan migrate

如果您使用的是Laravel 5.5或更高版本,那么就这些了。

Laravel <= 5.4

如果您仍然在使用Laravel且版本低于5.4,还有一步。将包的以下服务提供者添加到config/app.php文件中的包里。

providers数组中添加新行

Secretwebmaster\LaravelOptionable\PackageServiceProvider::class

现在您已经准备好开始使用laravel-optionable了!

概述

查看以下主题以了解更多信息

用法

首先。将HasOptions特性添加到您的模型中。以User模型为例

use Secretwebmaster\LaravelOptionable\Traits\HasOptions;

class Post extends Model
{
    use HasFactory;
    use HasOptions; // <-- add this

    protected $guarded = [];

    //...
}

现在您可以访问所有关系方法。在实际项目中,您可以在任何Eloquent模型中使用它。

首先。获取您的模型

$model = Model::first();

获取所有选项

$model->get_options();

您可以指定输出格式。默认情况下,它将是数组。您可以通过传递jsoncollection来更改输出格式

$model->get_options('json');
$model->get_options('collection');

获取单个选项值

传递键名以获取值

$model->get_option('key');

如果键不存在或值为空,您还可以传递一个回退值。

$model->get_option('key', 'fallback value');

如果您不想在键设置但值为空时回退,您可以将false作为第三个参数传递以强制返回实际值。

$model->get_option('key', 'fallback value', false);

设置单个选项

$model->set_option('key', 'value');

设置多个选项

以数组的形式传递数据。不支持嵌套数组

$model->set_options([
    'language' => 'English',
    'mode' => 'dark',
    'homepage' => 'something',
]);

删除单个选项

传递要删除的键

$model->delete_option('key');

删除多个选项

以数组的形式传递键

$model->delete_options(['key1', 'key2']);

删除所有选项

$model->delete_all_options();