JsonData behavior for Yii2 ActiveRecords
Enables you to easily encode and decode json in your activerecords. It automatically encodes before validating and saving to database and decodes after., (*1)
, (*2)
Installation
The preferred way to install the library is through composer., (*3)
Either run, (*4)
php composer.phar require --prefer-dist locustv2/yii2-json-data-behavior
or add, (*5)
{
"require": {
"locustv2/yii2-json-data-behavior": "~1.0.0"
}
}
to your composer.json
file., (*6)
Usage
public function behaviors()
{
return [
'class' => \locustv2\behaviors\JsonDataBehavior::className(),
'dataAttribute' => 'hotel_data',
];
}
After configuring your activerecord as above, you can use as follows:, (*7)
$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
Contributing
Feel free to send pull requests., (*8)
License
For license information check the LICENSE-file., (*9)