yiimaker / yii2-data-static

Yii2 静态数据

安装: 23

依赖项: 0

建议者: 0

安全: 0

星标: 3

关注者: 3

分支: 0

开放性问题: 0

类型:yii2-extension

1.2.2 2017-01-10 15:03 UTC

This package is auto-updated.

Last update: 2024-09-14 03:53:37 UTC


README

这是一个存储配置数据的模型。StaticData遵循与yii\base\Model相同的规则

安装

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

运行以下命令之一:

php composer.phar require --prefer-dist yiimaker/yii2-data-static "*"

"yiimaker/yii2-data-static": "*"

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

用法

  1. 在配置文件或StaticData类中配置组件yiimaker/yii2-configuration。更多信息请见此处
  2. 继承类ymaker\data\statics\StaticData,然后将其描述为正常模型。

示例

StaticData

class AboutUs extends ymaker\data\statics\StaticData
{
    public $phone;
    public $email;

    public function rules()
    {
        return [
            [['phone', 'email'], 'required'],
            ['phone', 'string', 'max' => 255],
            ['email', 'email']
        ];
    }
}
$aboutUs = new AboutUs();

保存数据

$aboutUs->phone = '+111111111111';
$aboutUs->email = 'test@example.com';
$aboutUs->save();

加载数据

$aboutUs->loadAttributes();
echo $aboutUs->email; // 'test@example.com';

或者

$aboutUs = AboutUs::getInstance();

重新加载数据

$aboutUs->loadAttributes();
$aboutUs->email = 'another@example.com';
$aboutUs->reload();

echo $aboutUs->email; // 'test@example.com';

StaticDataTranslation

class AboutUs extends ymaker\data\statics\StaticDataTranslation
{
    public $address;

    public function rules()
    {
        return [
            [['address'], 'required'],
            ['address', 'string', 'max' => 255],
        ];
    }
}
$aboutUs = new AboutUs(['language' => 'en-US']);
// $about

保存数据

$aboutUs->address = 'Kiev, Ukraine';
$aboutUs->save();
$aboutUs->setLanguage('ru-RU');
$aboutUs->address = 'Киев, Украина';
$aboutUs->save();

加载数据

$aboutUs->loadAttributes();
echo $aboutUs->address; // 'Киев, Украина'
$aboutUs->changeLanguage('en-US');
echo $aboutUs->address; // 'Kiev, Ukraine'

或者

$aboutUs = AboutUs::getInstance(['language' => 'en-US']);

重新加载数据

$aboutUs->loadAttributes();
$aboutUs->address = 'Лондон, Великобритания';
$aboutUs->reload();

echo $aboutUs->address; // 'Киев, Украина'

更改语言

    /**
     * change language for model
     * @param $language string language code
     * @param bool $reload If true, then all attributes will be overwritten
     */
    public function changeLanguage($language, $reload = true);
echo $aboutUs->address; // 'Киев, Украина'
$aboutUs->changeLanguage('en-US');
echo $aboutUs->address; // 'Kiev, Ukraine'

$aboutUs->changeLanguage('ru-RU', false);
echo $aboutUs->address; // 'Kiev, Ukraine'

$aboutUs->reload();
echo $aboutUs->address; // 'Киев, Украина'