urmaul / yii-enumattributes
用于处理ENUM属性的Yii ActiveRecord行为。
dev-master
2014-06-18 17:08 UTC
Requires
- yiisoft/yii: *
This package is not auto-updated.
Last update: 2024-09-14 15:52:48 UTC
README
用于处理ENUM属性的Yii ActiveRecord行为
安装
composer require urmaul/yii-enumattributes dev-master
附加示例
您需要将此行为添加到behaviors
public function behaviors() { return array( ... 'statusEnum' => array( 'class' => 'EnumAttributesBehavior', 'attribute' => 'status', ), ); }
选项
- attribute (字符串) - enum属性名称
- labels (数组) - 自定义标签数组 (value => label)
Class phpDoc
并且您也应该将行为属性添加到phpDoc注释中
/** * ... * * @property EnumAttributesBehavior $statusEnum */ class ...
使用
值
现在,您可以通过调用行为来检索可能的值的列表
$model->statusEnum->values
值的顺序与数据库结构中的值的顺序相同。
标签
或者,您可以调用行为以检索“value => label”映射
$model->statusEnum->valueLabels
值的顺序与数据库结构中的值的顺序相同。
标签是通过使用 CModel::generateAttributeLabel 函数从值生成的。您可以使用 labels 行为选项设置自定义标签。
验证规则
此行为可以为您生成验证规则。
public function rules() { return array( ... $this->statusEnum->rule, // or $this->statusEnum->rule + array('on' => 'create'), ... ); }