luckynvic / yii2-option
保存命名值对的Yii2扩展
0.0.5
2023-10-01 09:30 UTC
README
Yii2扩展,用于在数据库中保存命名值对。
安装
建议使用composer安装,在composer.json
的require
部分添加以下内容
"luckynvic/yii2-option": "*"
之后运行composer update
运行以下命令进行迁移
yii migrate --migrationPath="@luckynvic/option/migrations"
配置
修改您的配置
'components' => [ 'option' => ['class'=>'\luckynvic\option\components\OptionComponent'], ... ]
用法
保存选项
$state_list = [ 'O' => 'Open', 'P' => 'On Progress', 'C' => 'Complete', 'A' => 'Cancel', ]; // save all array value Yii::$app->option->set('state_list', $state_list); // add new value or change value Yii::$app->option->set('state_list', 'Failed', 'F'); // save single value Yii::$app->option->set('app_name', 'Application Name');
获取选项
// get all option list $state_list = Yii::$app->option->get('state_list'); // get all option list with default if not available $my_list = Yii::$app->option->get('my_list', null, ['this', 'is', 'my', 'list']); // get only one value $progress = Yii::$app->option->get('state_list', 'O');
注意:传递null
作为索引将返回整个列表。
删除选项
// delete entire option Yii::$app->option->delete('state_list'); // or Yii::$app->option->set('state_list', null); // delete only one item Yii::$app->option->delete('state_list', 'C'); // or Yii::$app->option->set('state_list', null, 'C');
注意:将值设置为null
将删除项目。
上下文
此扩展允许根据其上下文保存选项。例如,用户的选项。
class User extends implements IdentityInterface { // add trait use \luckynvic\option\traits\HasOption; // optional to configure context key protected function optionKey() { return 'user-'.$this->id; } } // usage in app $model->findOne(1); // get user background color for user, default blue $color = $model->getOption('background', 'color', 'blue'); // set background color to red $color = $model->getOption('background', 'red', 'color');
作者
- Lucky Vic (luckynvic@gmail.com)