aecor/statusable

为任何模型添加状态

1.0.4 2021-02-23 06:11 UTC

This package is auto-updated.

Last update: 2024-09-23 14:24:06 UTC


README

Latest Version on Packagist GitHub Tests Action Status Total Downloads

安装

您可以通过composer安装此包

composer require aecor/statusable

您可以使用以下命令发布并运行迁移

php artisan vendor:publish --provider="Aecor\Status\StatusServiceProvider" --tag="migrations"
php artisan migrate

您可以使用以下命令发布配置文件

php artisan vendor:publish --provider="Aecor\Status\StatusServiceProvider" --tag="config"

这是发布配置文件的内容

return [
    'status-table-name' => 'statuses'
];

用法及示例

准备您的模型

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Aecor\Status\Traits\HasStatus;

class YourModel extends Model
{
    use HasStatus;
}

获取您的模型实例

$user = \App\Models\User::find(1);

以下数据库中所有常见字段都可用,此外,您还可以在 'custom_attributes' 字段中以json格式存储自己的详细信息。所有字段都保留为可为空,以便于实现。

'name',
'type',
'custom_attributes' // json field to add any additional data
'order_column'

添加单个联系

$user->addStatus([
    [
        'name' => 'Active',
        'type' => 'user',
        'custom_attributes' => [
            'group' => 'some-text'
        ],
    ]
]);

添加多个状态

$user->addManyStatus([
    [
        'name' => 'Active',
    ],
    [
        'name' => 'De-active',
    ],
    [
        'name' => 'On-hold',
    ],
]);

分配新状态

$status = Status::where('name', 'Active')->first();
$status2 = Status::where('name', 'On-hold')->first();

$user->assignStatus($status->id);

$user->assignManyStatus([$status->id, $status2->id]);

同步状态

$status = Status::where('name', 'Active')->first();
$status2 = Status::where('name', 'On-hold')->first();

$user->syncStatus($status->id);

$user->syncManyStatus([$status->id, $status2->id]);

获取所有状态

$user->statuses;

获取第一个状态

$user->status();

变更日志

有关最近更改的更多信息,请参阅变更日志

贡献

有关详细信息,请参阅贡献指南

安全漏洞

有关如何报告安全漏洞的详细信息,请参阅我们的安全策略

鸣谢

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件