faryshta/yii2-enum
为 Yii2 模型和表单提供枚举类
1.0.0
2015-11-28 18:39 UTC
Requires
- php: >=5.4.0
- yiisoft/yii2: *
Requires (Dev)
- cebe/indent: *
- phpunit/phpunit: ~4.4
Suggests
- yiisoft/yii2-coding-standards: you can use this package to check for code style issues when contributing to yii
This package is not auto-updated.
Last update: 2024-09-14 18:26:06 UTC
README
Faryshta Yii2 Enum 扩展为 Yii2 模型和表单中枚举的使用提供支持。
安装
安装此扩展的首选方式是通过 composer。查看 composer.json 以了解此扩展的要求和依赖项。
要安装,可以运行
$ php composer.phar require faryshta/yii2-enum "@dev"
或者将以下内容添加到你的 composer.json
文件的 require
部分:
"faryshta/yii2-enum": "@dev "
to the require
section of your composer.json
file.
使用方法
EnumTrait
use faryshta\base\EnumTrait; class Person extends \yii\base\Model { use EnumTrait; public static function enums() { return [ // this is the name of the enum. 'gender' => [ // here it follows the `'index' => 'desc'` notation 'F' => 'Female', 'M' => 'Male', ], ]; } // optional magic method to access the value quickly public function getGenderDesc() { // method provided in the EnumTrait to get the description of the value // of the attribute return $this->getAttributeDesc('gender'); } }
EnumValidator
use faryshta\base\EnumTrait; use faryshta\validators\EnumValidator; class Person extends \yii\base\Model { use EnumTrait; public $gender; public static function enums() { return [ // this is the name of the enum. 'gender' => [ // here it follows the `'index' => 'desc'` notation 'F' => 'Female', 'M' => 'Male', ], ]; } public function rules() { return [ [ ['gender'], EnumValidator::className(), // optional, if you want to use a diferent class than the // class of the current model // 'enumClass' => Person::className() // optional, if you want to use a diferent enum name than the // name of the attribute being validated // 'enumName' => 'gender' ], ]; } }
枚举小部件
在视图文件中
use faryshta\widgets\EnumDropdown; use faryshta\widgets\EnumRadio; /** * @var Person $model * @var ActiveForm $form */ // with ActiveForm echo $form->field($person, 'gender')->widget(EnumDropdown::className()); // without ActiveForm and with model. echo EnumDropdown::widget([ 'model' => $person, 'attribute' => 'gender', ]); // without Model echo EnumDropdown::widget([ 'name' => 'gender', 'enumClass' => Person::className(), 'enumName' => 'gender', ]); // The same applies for the EnumRadio widget if you want to render a // list of radio buttons echo $form->field($person, 'gender')->widget(EnumRadio::className());
EnumColumn
在视图文件中
use faryshta\data\EnumColumn; use yii\widgets\GridView; echo GridView::widget([ 'searchModel' => $personSearch, 'dataProvider' => $personDataProvider, 'columns' => [ 'class' => EnumColumn::className(), 'attribute' => 'gender', // optional, if you want to use a diferent class than the // class of the current model // 'enumClass' => Person::className() // optional, if you want to use a diferent enum name than the // name of the attribute being validated // 'enumName' => 'gender' ], ]);
许可证
Faryshta Yii2 Enum 依据 BSD 3-Clause 许可证发布。详情请参阅捆绑的 LICENSE.md
。