secretwebmaster/ laravel-optionable
允许任何Eloquent模型拥有自己的选项,例如用户选项、页面选项等。
v1.2.0
2024-05-01 08:25 UTC
Requires
- php: ^8.1
Requires (Dev)
- orchestra/testbench: 8.x-dev
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();
您可以指定输出格式。默认情况下,它将是数组。您可以通过传递json
或collection
来更改输出格式
$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();