eluhr/yii2-json-attribute-behavior This behavior automatically decodes attributes from JSON to arrays before validation, handling errors and re-encoding if vali... (see full description)

Yii2 JSON Attribute Behavior

  1. Installation
  2. Usage
  3. Testing

This behavior automatically decodes attributes from JSON to arrays before validation, handling errors and re-encoding if validation fails. With this a "real" json string can be further processed.

CI Workflow

Installation

The preferred way to install this extension is through composer.

Either run

composer require --prefer-dist eluhr/yii2-json-attribute-behavior "*"

or add

"eluhr/yii2-json-attribute-behavior": "*"

to the require section of your composer.json file.

Usage

In a yii\base\Model or a derivation thereof, the behavior can be used as follows:

public function behaviors(): array
{
    $behaviors = parent::behaviors();
    $behaviors['json-attribute'] = [
        'class' => eluhr\jsonAttributeBehavior\JsonAttributeBehavior::class,
        'attributes' => [
            'data_json'
        ]
    ];
    return $behaviors;
}

By using this behavior it does not matter if the attribute is a string or an array. The behavior will always ensure, that the attribute is an array before saving the data to the database and yii will handle the rest.

This behavior supports i18n. By adding the json-attribute-behavior category in your config you can overwrite the default error messages.

Testing

After installing dependencies via composer you can run the tests with:

make test
0 0
1 follower
460 downloads
Yii Version: 2.0
License: BSD-3-Clause
Category: Others
Tags: behavior, JSON
Developed by: Elias Luhr
Created on: Dec 28, 2023
Last updated: (not set)
Packagist Profile
Github Repository

Related Extensions