yiimaker / yii2-data-static
Yii2 静态数据
1.2.2
2017-01-10 15:03 UTC
Requires
- yiimaker/yii2-configuration: ^1.3.0
- yiisoft/yii2: *
README
这是一个存储配置数据的模型。StaticData
遵循与yii\base\Model
相同的规则
安装
安装此扩展的首选方式是通过composer。
运行以下命令之一:
php composer.phar require --prefer-dist yiimaker/yii2-data-static "*"
或
"yiimaker/yii2-data-static": "*"
将以下内容添加到您的composer.json
文件的require部分。
用法
- 在配置文件或
StaticData
类中配置组件yiimaker/yii2-configuration
。更多信息请见此处 - 继承类
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; // 'Киев, Украина'