2017 © Pedro Peláez
 

yii2-extension yii2-format-converter

Yii2 AR attribute converter

image

mdmsoft/yii2-format-converter

Yii2 AR attribute converter

  • Friday, May 27, 2016
  • by mdmunir
  • Repository
  • 2 Watchers
  • 12 Stars
  • 13,715 Installations
  • PHP
  • 6 Dependents
  • 0 Suggesters
  • 10 Forks
  • 1 Open issues
  • 4 Versions
  • 6 % Grown

The README.md

yii2-format-converter

Installation

The preferred way to install this extension is through composer., (*1)

Either run, (*2)

php composer.phar require mdmsoft/yii2-format-converter "~1.0"

or add, (*3)

"mdmsoft/yii2-format-converter": "~1.0"

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

Usage

Once the extension is installed, simply modify your ActiveRecord class:, (*5)

DateConverter Behavior

Use to convert date format from database format to logical format, (*6)

public function behaviors()
{
    return [
        [
            'class' => 'mdm\converter\DateConverter',
            'type' => 'date', // 'date', 'time', 'datetime'
            'logicalFormat' => 'php:d/m/Y', // default to locale format
            'physicalFormat' => 'php:Y-m-d', // database level format, default to 'Y-m-d'
            'attributes' => [
                'Date' => 'date', // date is original attribute
            ]
        ],
        ...
    ]
}

then add attribute Date to your model rules., (*7)

// in view view.php
echo DetailView::widget([
    'options' => ['class' => 'table table-striped detail-view', 'style' => 'padding:0px;'],
    'model' => $model,
    'attributes' => [
        'sales_num',
        'supplier.name',
        'Date', // use attribute 'Date' instead of 'sales_date'
        'nmStatus',
    ],
]);


// in view _form.php 
echo $form->field($model, 'Date')
    ->widget('yii\jui\DatePicker', [
        'options' => ['class' => 'form-control', 'style' => 'width:50%'],
        'dateFormat' => 'php:d/m/Y', 
]);

RelatedConverter Behavior

Convert id to name of related model, (*8)

// attach to model
public function behaviors()
{
    return [
        [
            'class' => 'mdm\converter\RelatedConverter',
            'attributes => [
                'supplierName' => ['supplier', 'name'], // use avaliable relation
                'branchName' => [[Branch::className(), 'id' => 'branch_id'], 'name'], // use classname
            ]
        ],
    ];
}

// usage
$model->supplierName = 'Donquixote Family';
$model->branchName = 'North Blue';

// in form
= $form->field($model,'supplierName'); ?>

EnumConverter Behavior

Use to convert constant value to constant name., (*9)

class Post extends ActiveRecord
{
    const STATUS_DRAFT = 1;
    const STATUS_PUBLISHED = 2;
    const STATUS_DELETED = 3;

    ...

    public function behaviors()
    {
        return [
            [
                'class' => 'mdm\converter\EnumConverter',
                'attributes => [
                    'statusName' => 'status', // 
                ],
                'prefix' => 'STATUS_'
            ],
        ];
    }
}

// usage
$model->status = Post::STATUS_PUBLISHED;

echo $model->statusName; // return Published

EnumTrait

Use to get list of constant, (*10)

class Post extends ActiveRecord
{
    use \mdm\converter\EnumTrait;

    const STATUS_DRAFT = 1;
    const STATUS_PUBLISHED = 2;
    const STATUS_DELETED = 3;

    public function getNmStatus()
    {
        return $this->getLogical('status', 'STATUS_');
    }

    public function setNmStatus($value)
    {
        return $this->setLogical('status', 'STATUS_', $value);
    }

}

// usage
$model->nmStatus = 'DRAFT'; // eq $model->status = 1;

$model->status = 2;
echo $model->nmStatus; // return PUBLISHED;

Post::enums('STATUS_');
/*
[
    1 => 'DRAFT',
    2 => 'PUBLISHED',
    3 => 'DELETED',
]
*/ 

Post::constants('STATUS_');
/*
[
    'DRAFT' => 1,
    'PUBLISHED' => 2,
    'DELETED' => 3,
]
*/ 

The Versions

27/05 2016

dev-master

9999999-dev

Yii2 AR attribute converter

  Sources   Download

BSD-3-Clause

The Requires

 

by Misbahul D Munir

extension yii2

04/02 2016

1.2

1.2.0.0

Yii2 AR attribute converter

  Sources   Download

BSD-3-Clause

The Requires

 

by Misbahul D Munir

extension yii2

26/07 2015

1.1

1.1.0.0

Yii2 AR attribute converter

  Sources   Download

BSD-3-Clause

The Requires

 

by Misbahul D Munir

extension yii2

02/11 2014

1.0.0

1.0.0.0

Yii2 AR attribute converter

  Sources   Download

BSD-3-Clause

The Requires

 

by Misbahul D Munir

extension yii2