eluhr / yii2-json-attribute-behavior
此行为在验证之前自动将属性从JSON解码为数组,处理错误,如果验证失败则重新编码。使用此功能可以进一步处理“真正的”JSON字符串。
1.0.0
2023-12-28 15:44 UTC
Requires
- php: >=7.4
- yiisoft/yii2: ~2.0.0
Requires (Dev)
- phpunit/phpunit: ^10
This package is auto-updated.
Last update: 2024-08-30 02:03:14 UTC
README
此行为在验证之前自动将属性从JSON解码为数组,处理错误,如果验证失败则重新编码。使用此功能可以进一步处理“真正的”JSON字符串。
安装
安装此扩展的首选方法是通过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