2017 © Pedro Peláez
 

yii2-extension yii2-enum

Enum classes for Yii2 models and forms

image

faryshta/yii2-enum

Enum classes for Yii2 models and forms

  • Tuesday, March 14, 2017
  • by Faryshta
  • Repository
  • 3 Watchers
  • 15 Stars
  • 6,137 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 4 Forks
  • 0 Open issues
  • 2 Versions
  • 12 % Grown

The README.md

Faryshta Yii2 Enum

Latest Stable Version Total Downloads Latest Unstable Version License, (*1)

Faryshta Yii2 Enum extension provides support for the ussage of enumarions in Yii2 models and forms., (*2)

Installation

The preferred way to install this extension is through composer. Check the composer.json for this extension's requirements and dependencies., (*3)

To install, either run, (*4)

$ php composer.phar require faryshta/yii2-enum "@dev"

or add, (*5)

"faryshta/yii2-enum": "@dev "

to the require section of your composer.json file., (*6)

Usage

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'
            ],
        ];
    }
}

Enum Widgets

In a view file, (*7)

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

In a view file, (*8)

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'
    ],
]);

License

Faryshta Yii2 Enum is released under the BSD 3-Clause License. See the bundled LICENSE.md for details., (*9)

The Versions

14/03 2017

dev-master

9999999-dev http://www.yiiframework.com/

Enum classes for Yii2 models and forms

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

yii2 enum

28/11 2015

1.0.0

1.0.0.0 http://www.yiiframework.com/

Enum classes for Yii2 models and forms

  Sources   Download

BSD-3-Clause

The Requires

 

The Development Requires

yii2 enum