jc-it/yii2-i18n-model
最新稳定版本:v1.0.2
Composer 安装命令:
composer require jc-it/yii2-i18n-model
包简介
Helpers to work with model translations.
README 文档
README
This extension provides a package that implements some traits and behaviors to work with model attribute translations.
$ composer require jc-it/yii2-i18n-model
or add
"jc-it/yii2-i18n-model": "^<latest version>"
to the require section of your composer.json file.
Configuration
Active Record model
Add behavior to you AR model and make sure it has an i18n attribute:
public function behaviors(): array { return [ \JCIT\i18n\behaviors\I18nBehavior::class => [ 'class' => \JCIT\i18n\behaviors\I18nBehavior::class, 'attributes' => [ '<attribute>', ], ] ]; }
In the rules, just define the rules as you would normally do:
public function rules(): array { return [ [['<attribute>'], \yii\validators\RequiredValidator::class], [['<attribute>'], \yii\validators\StringValidator::class], ]; }
In order to set properties or save it first set the locale and then save:
$model = new ClassWithI18nBehavior(); $model->locale = 'en-US'; $model-><attribute> = 'value en'; $model->save(); $model->locale = 'nl-NL'; $model-><attribute> = 'value nl'; $model->save();
Fetching values is done automatically to the locale set to the model:
$model = ClassWithI18nBehavior::findOne(); $model->locale = 'en-US'; echo $model-><attribute>; // 'value en' $model->locale = 'nl-NL'; echo $model-><attribute>; // 'value nl'
Form model
Add the trait to the form model:
class FormModel extends \yii\base\Model { use \JCIT\i18n\traits\models\I18nTrait; }
On rendering the form attributes, the attribute name should be like: i18n[<locale>][<attribute>].
TODO
- Fix PHPStan, re-add to
captainhook.json-
{ "action": "vendor/bin/phpstan", "options": [], "conditions": [] },
-
- Add tests
Credits
License
The MIT License (MIT). Please see LICENSE for more information.
统计信息
- 总下载量: 10
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-01-25