eluhr/yii2-json-attribute-behavior

此行为在验证之前自动将属性从JSON解码为数组,处理错误,如果验证失败则重新编码。使用此功能可以进一步处理“真正的”JSON字符串。

1.0.0 2023-12-28 15:44 UTC

This package is auto-updated.

Last update: 2024-08-30 02:03:14 UTC


README

此行为在验证之前自动将属性从JSON解码为数组,处理错误,如果验证失败则重新编码。使用此功能可以进一步处理“真正的”JSON字符串。

CI Workflow

安装

安装此扩展的首选方法是通过composer

运行以下命令之一:

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

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

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

用法

yii\base\Model或其派生类中,可以使用以下方式使用此行为

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

使用此行为时,属性是字符串还是数组无关紧要。该行为将始终确保在将数据保存到数据库之前,属性为数组,然后yii将处理其余部分。

此行为支持i18n。通过在配置中添加json-attribute-behavior类别,可以覆盖默认的错误消息。

测试

通过composer安装依赖项后,可以使用以下命令运行测试

make test