supplycart/settings

Laravel 的模型设置

3.0.0 2024-06-18 07:41 UTC

README

允许Eloquent模型拥有自己的设置

安装

要安装,请在您的Laravel安装上运行以下命令

composer require supplycart/settings

然后发布迁移文件

php artisan vendor:publish --tag=migrations --provider=Supplycart\Settings\Providers\SettingsServiceProvider

使用方法

要使用,您只需实现 Supplycart\Settings\Contracts\HasSettings 接口并使用 Supplycart\Settings\Traits\HasSettings 特性

use Supplycart\Settings\Contracts\HasSettings as HasSettingsContract;
use Supplycart\Settings\Traits\HasSettings;

class User extends Model implements HasSettingsContract
{
    use HasSettings;
    
    public function getDefaultSettings(): array
    {
        return [];
    }
}

方法

getSetting($key, $default = null)

通过键检索模型设置。您可以使用点表示法获取嵌套设置,例如

$user->getSetting('timezone', 'Asia/Kuala_Lumpur');
$user->getSetting('lang', 'en_my');
$user->getSetting('subscription.newsletter', false);

setSetting($key, $value)

使用键设置模型设置。您可以使用与 getSetting 方法相同的点表示法

$user->setSetting('timezone', 'UTC');
$user->setSetting('lang', 'en_us');
$user->setSetting('subscription.newsletter', true);

getSettings()

获取所有设置。它将返回设置数组

$settings = $user->getSettings(); // ['timezone' => 'UTC', 'lang' => 'en_us', 'subscription' => ['newsletter' => true]];