rsol/yii2-settings

Yii2 数据库设置

维护者

详细信息

github.com/RSol/yii2-settings

源代码

安装: 15

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 74

类型:yii2-extension

0.4 2016-03-12 14:08 UTC

This package is not auto-updated.

Last update: 2024-09-26 00:47:16 UTC


README

Yii2 数据库设置

安装

安装此扩展的首选方式是通过composer

运行以下命令之一

php composer.phar require --prefer-dist rsol/yii2-settings "*"

或添加

"rsol/yii2-settings": "*"

到您的composer.json文件的require部分。

然后,运行以下命令

./yii migrate/up --migrationPath=@vendor/rsol/yii2-settings/migrations

以便在您的数据库中创建设置表。

用法

此扩展分为两部分:一个模块和一个组件。模块提供了一个简单的GUI来编辑设置。组件提供了一种通过程序检索和保存设置的方法。

将此添加到您主要配置的modules数组中

'modules' => [
    'settings' => [
        'class' => 'rsol\settings\Module',
        'sourceLanguage' => 'en'
    ],
    ...
],

将此添加到您主要配置的components数组中

'components' => [
    'settings' => [
        'class' => 'rsol\settings\components\Settings'
    ],
    ...
]

典型组件用法

$settings = Yii::$app->settings;

$value = $settings->get('section.key');

$value = $settings->get('key', 'section');

$settings->set('section.key', 'value');

$settings->set('section.key', 'value', null, 'string');

$settings->set('key', 'value', 'section', 'integer');

// Automatically called on set();
$settings->clearCache();

SettingsAction

要使用自定义设置表单,您可以使用包含的SettingsAction

  1. 创建一个包含您的验证规则的模式类。
  2. 创建一个关联的视图,其中包含ActiveForm包含您需要的所有设置。
  3. rsol\settings\SettingsAction添加到控制器的动作中。

设置将被存储在从表单名称中获取的章节中,键为字段名称。

模型:

class Site extends Model {
	public $siteName, $siteDescription;
	public function rules()
	{
		return [
			[['siteName', 'siteDescription'], 'string'],
		];
	}
	
	public function fields()
	{
	        return ['siteName', 'siteDescription'];
	}
	
	public function attributes()
	{
	        return ['siteName', 'siteDescription'];
	}
}

视图:

<?php $form = ActiveForm::begin(['id' => 'site-settings-form']); ?>
<?= $form->field($model, 'siteName') ?>
<?= $form->field($model, 'siteDescription') ?>

控制器:

function actions(){
   return [
   		//....
            'site-settings' => [
                'class' => 'rsol\settings\SettingsAction',
                'modelClass' => 'app\models\Site',
                //'scenario' => 'site',	// Change if you want to re-use the model for multiple setting form.
                'viewName' => 'site-settings'	// The form we need to render
            ],
        //....
    ];
}

SettingsAction v2

要使用自定义设置表单,您可以使用包含的actions\SettingsAction

  1. 创建一个关联的视图,其中包含ActiveForm包含您需要的所有设置。
  2. rsol\settings\actions\SettingsAction添加到控制器的动作中。

视图:参见 /rsol/settings/views/default/custom.php

控制器:

    public function actions()
    {
        return [
            'customer' => [
                'class' => SettingsAction::className(),
                'viewName' => 'custom'	// The form we need to render
                'config' => [
                    'attributes' => [
                        [
                            'section' => 'currency',
                            'key' => 'rur',
                            'label' => 'RUB currency',
                        ],
                        [
                            'section' => 'currency',
                            'key' => 'usd',
                            'label' => 'USD currency',
                        ],
                        [
                            'section' => 'system',
                            'key' => 'email',
                            'label' => 'System E-mail',
                        ],
                    ],
                    'rules' => [ // Additional rules for validation
                        [['currency.rur', 'currency.usd', 'system.email'], 'required'],
                    ],
                ],
            ],
        ];
    }