jberall/yii2-json-behavior

为Postgresql jsonb列附加行为

安装: 16

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 2

分支: 0

开放问题: 0

类型:yii2-extension

dev-master 2017-05-16 21:01 UTC

This package is not auto-updated.

Last update: 2024-09-29 01:44:21 UTC


README

为Postgresql jsonb列附加行为

安装

安装此扩展的首选方法是使用 composer

运行以下命令之一

php composer.phar require --prefer-dist jberall/yii2-json-behavior "*"

"jberall/yii2-json-behavior": "*"

将以下内容添加到您的 composer.json 文件的 require 部分。

用法

安装扩展后,只需在代码中使用它即可:您需要将 json_attribute 识别为数据库中的列。将会检查模型和属性是否存在。

use jberall\jsonbehavior;

//declare the variables.
//attributes.
public $some_attribute,$another_attribute;
//objects
public $dimension;
//arrayObjects.
public $emails, $phone_numbers;



public function behaviors() {

    $behaviors = [
        'attributeJsonBehavior' =>[
            'class' => JsonBehavior::className(),
            'attributes' => ['some_attribute'=>null, 'another_attribute'=>null],
            'json_attribute'=> 'data_json',
        ],
		'objectJsonBehavior' => [
            'class' => JsonBehavior::className(),
            'arrayObjects' => [
                'dimension'=>'\full\path\Dimension',
                
             ],
            'json_attribute'=> 'data_json',                
        ],
        'arrayObjectsJsonBehavior' => [
            'class' => JsonBehavior::className(),
            'arrayObjects' => [
                'emails'=>\full\path\'Email',
                'phone_numbers'=>'\full\path\PhoneNumber',
             ],
            'json_attribute'=> 'data_json',                
        ],

		//OR Combine into one.
		'namedBehavior' => [
            'class' => JsonBehavior::className(),
            'attributes' => ['some_attribute'=>null, 'another_attribute'=>null],
			'arrayObjects' => [
                'dimension'=>'\full\path\Dimension',
                
             ],
            'arrayObjects' => [
                'emails'=>\full\path\'Email',
                'phone_numbers'=>'\full\path\PhoneNumber',
             ],				 
            'json_attribute'=> 'data_json',			
		],
    ];
    return ArrayHelper::merge(parent::behaviors(),$behaviors);

}