locustv2 / yii2-json-data-behavior
Enables you to easily encode and decode json in your activerecords.
Installs: 228
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 0
Open Issues: 0
Type:yii2-extension
Requires
- yiisoft/yii2: ~2.0.4
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.
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.