locustv2/yii2-json-data-behavior

Enables you to easily encode and decode json in your activerecords.

1.0.0 2017-03-31 19:15 UTC

This package is not auto-updated.

Last update: 2024-12-22 03:05:42 UTC


README

Enables you to easily encode and decode json in your activerecords. It automatically encodes before validating and saving to database and decodes after.

Latest Stable Version Total Downloads Latest Unstable Version License

Installation

The preferred way to install the library is through composer.

Either run

php composer.phar require --prefer-dist locustv2/yii2-json-data-behavior

or add

{
    "require": {
        "locustv2/yii2-json-data-behavior": "~1.0.0"
    }
}

to your composer.json file.

Usage

public function behaviors()
{
    return [
        'class' => \locustv2\behaviors\JsonDataBehavior::className(),
        'dataAttribute' => 'hotel_data',
    ];
}

After configuring your activerecord as above, you can use as follows:

$model = Hotel::find()->one();

var_dump($model->getData('rooms')); // assume it returns a list of rooms
var_dump($model->getData('rooms.0.price')); // to get rooms data

$model->setData('ratings', [
    '5star' => ['count' => 100],
    '4star' => ['count' => 200],
    '3star' => ['count' => 20],
    '2star' => ['count' => 75],
    '1star' => ['count' => 50],
]);

var_dump($model->getData('ratings.3star.count')); // returns 20

To do

  • Add unit tests

Contributing

Feel free to send pull requests.

License

For license information check the LICENSE-file.