1. Go to this page and download the library: Download indifferend/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/ */
indifferend / yii2-enum example snippets
namespace app\models\enums;
use indifferend\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',
];
}
$status = new PostStatus(PostStatus::PENDING);
// or you can use the magic methods
$status = PostStatus::PENDING();
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;
}
}
php composer.phar
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.