yiier / yii2-target-setting
为 Yii2 的目标设置
v0.1.3
2021-01-18 03:40 UTC
Requires
- yiisoft/yii2: ~2.0.0
This package is auto-updated.
Last update: 2024-09-17 14:23:10 UTC
README
为 Yii2 的目标设置
安装
安装此扩展的首选方式是通过 composer。
运行以下命令之一
php composer.phar require --prefer-dist yiier/yii2-target-setting "*"
或者在您的 composer.json
文件的 require 部分添加
"yiier/yii2-target-setting": "*"
到 require 部分。
配置
数据库迁移
在使用此扩展之前,我们还需要准备数据库。
php yii migrate --migrationPath=@yiier/targetSetting/migrations/
模块设置
要访问模块,您需要在应用程序配置中配置 modules 数组
'modules' => [ 'targetSetting' => [ 'class' => 'yiier\targetSetting\Module', ], ],
组件设置
要使用 Setting 组件,您需要在应用程序配置中配置 components 数组
'components' => [ 'targetSetting' => [ 'class' => 'yiier\targetSetting\TargetSetting', ], ],
使用方法
<?php $setting = Yii::$app->targetSetting; $value = $setting->get('key'); $value = $setting->get('key', User::tableName(), Yii::$app->user->id); $setting->set('key', 125.5); $setting->set('key', 125.5, User::tableName(), Yii::$app->user->id); $setting->set('key', false, User::tableName(), Yii::$app->user->id, 'Not allowed Update Post'); $setting->set('key', false, '', 0, 'Not allowed Update Post'); // Checking existence of setting $setting->has('key'); $setting->has('key', User::tableName(), Yii::$app->user->id); // Activates a setting $setting->activate('key'); $setting->activate('key', User::tableName(), Yii::$app->user->id); // Deactivates a setting $setting->deactivate('key'); $setting->deactivate('key', User::tableName(), Yii::$app->user->id); // Removes a setting $setting->remove('key'); $setting->remove('key', User::tableName(), Yii::$app->user->id); // Removes all settings $setting->removeAll(); $setting->removeAll(User::tableName(), Yii::$app->user->id); // Get's all values in the specific section. $setting->getAllByTarget(User::tableName(),Yii::$app->user->id); $setting->invalidateCache(); // automatically called on set(), remove(); $setting->invalidateCache(User::tableName()); // automatically called on set(), remove();
TargetSettingAction
要使用自定义设置表单,您可以使用包含的 TargetSettingAction
。
- 创建一个包含验证规则的模型类。
- 创建一个包含所有所需设置的
ActiveForm
的关联视图。 - 将
yiier\targetSetting\targetSettingAction
添加到控制器的作用域。
设置将存储在表单名称中提取的章节,键为字段名称。
模型
<?php class SiteForm extends Model { public $siteName, $siteDescription; public function rules() { return [ [['siteName', 'siteDescription'], 'string'], ]; } public function fields() { return ['siteName', 'siteDescription']; } public function attributes() { return ['siteName', 'siteDescription']; } public function attributeLabels() { return [ 'siteName' => 'Site Name', 'siteDescription' => 'Site Description' ]; } }
视图
<?php $form = ActiveForm::begin(['id' => 'site-settings-form']); ?> <?= $form->field($model, 'siteName') ?> <?= $form->field($model, 'siteDescription') ?> <?= Html::submitButton('Save', ['class' => 'btn btn-success']) ?> <?php ActiveForm::end(); ?>
控制器
public function actions() { return [ //.... 'site-settings' => [ 'class' => TargetSettingAction::class, 'modelClass' => 'app\models\SiteForm', //'scenario' => 'site', // Change if you want to re-use the model for multiple setting form. //'targetType' => 'company', // By default use '' //'targetId' => 1, // By default use \Yii::$app->user->id 'viewName' => 'site-settings', // The form we need to render 'successMessage' => '保存成功' ], //.... ]; }