yii2mod/yii2-enum
最新稳定版本:1.7.1
Composer 安装命令:
composer require yii2mod/yii2-enum
包简介
Yii2 Enumerable helpers
README 文档
README
Enum Extension for Yii2
Enum implementation for Yii Framework 2.0
Support us
Does your business depend on our contributions? Reach out and support us on Patreon. All pledges will be dedicated to allocating workforce on maintenance and new awesome stuff.
Installation
The preferred way to install this extension is through composer.
Either run
php composer.phar require --prefer-dist yii2mod/yii2-enum "*"
or add
"yii2mod/yii2-enum": "*"
to the require section of your composer.json file.
Available Methods:
createByName()- Creates a new type instance using the name of a value.getValueByName()- Returns the constant key by value(label)createByValue()- Creates a new type instance using the value.listData()- Returns the associative array with constants values and labelsgetLabel()- Returns the constant label by keygetConstantsByName()- Returns the list of constants (by name) for this type.getConstantsByValue()- Returns the list of constants (by value) for this type.isValidName()- Checks if a name is valid for this type.isValidValue()- Checks if a value is valid for this type.
Declaration
<?php namespace app\models\enums; use yii2mod\enum\helpers\BaseEnum; class PostStatus extends BaseEnum { const PENDING = 0; const APPROVED = 1; const REJECTED = 2; const POSTPONED = 3; /** * @var string message category * You can set your own message category for translate the values in the $list property * Values in the $list property will be automatically translated in the function `listData()` */ public static $messageCategory = 'app'; /** * @var array */ public static $list = [ self::PENDING => 'Pending', self::APPROVED => 'Approved', self::REJECTED => 'Rejected', self::POSTPONED => 'Postponed', ]; }
Enum creation
$status = new PostStatus(PostStatus::PENDING); // or you can use the magic methods $status = PostStatus::PENDING();
Static methods
PostStatus::getConstantsByValue() // ['PENDING', 'APPROVED', 'REJECTED', 'POSTPONED'] PostStatus::getConstantsByName() // ['PENDING' => 0, 'APPROVED' => 1, 'REJECTED' => 2, 'POSTPONED' => 3] PostStatus::isValidName(1) // false PostStatus::isValidName('APPROVED') // true PostStatus::isValidValue(1) // true PostStatus::isValidValue('Approved') // false PostStatus::listData() // ['Pending', 'Approved', 'Rejected', 'Postponed'] PostStatus::getLabel(1) // Approved PostStatus::getValueByName('Approved') // 1
Type-Hint and Validation Rules
<?php use models\enums\PostStatus; use yii\db\ActiveRecord; class CommentModel extends ActiveRecord { public function rules() { return [ ['status', 'default', 'value' => PostStatus::APPROVED], ['status', 'in', 'range' => PostStatus::getConstantsByName()], ]; } public function setStatus(PostStatus $status) { $this->status = $status->getValue(); } public function getStatus() { return $this->status; } }
统计信息
- 总下载量: 893.91k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 63
- 点击次数: 1
- 依赖项目数: 36
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2014-11-26