aecor / statusable
为任何模型添加状态
1.0.4
2021-02-23 06:11 UTC
Requires
- php: ^7.4|^8.0
- illuminate/contracts: ^8.0
- spatie/laravel-sluggable: ^2.6
Requires (Dev)
- orchestra/testbench: ^6.0
- phpunit/phpunit: ^9.3
- vimeo/psalm: ^3.11
README
安装
您可以通过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)。有关更多信息,请参阅许可证文件