luckynvic/yii2-option

保存命名值对的Yii2扩展

安装: 153

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 0

公开问题: 0

类型:yii2-extension

0.0.5 2023-10-01 09:30 UTC

This package is auto-updated.

Last update: 2024-08-30 01:25:59 UTC


README

Yii2扩展,用于在数据库中保存命名值对。

安装

建议使用composer安装,在composer.jsonrequire部分添加以下内容

"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');

作者