1. Go to this page and download the library: Download faryshta/yii2-enum library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
faryshta / yii2-enum example snippets
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');
}
}
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());
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'
],
]);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.