It is a model for the data that stores configuration.
StaticData
subject to the same rules as yii\base\Model
The preferred way to install this extension is through composer.
Either run
php composer.phar require --prefer-dist yiimaker/yii2-data-static "*"
or add
"yiimaker/yii2-data-static": "*"
to the require section of your composer.json
file.
- Configure component
yiimaker/yii2-configuration
in config file or inStaticData
class. More information - Inherit the class
ymaker\data\statics\StaticData
, then describe it as a normal model.
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 = '[email protected]';
$aboutUs->save();
$aboutUs->loadAttributes();
echo $aboutUs->email; // '[email protected]';
or
$aboutUs = AboutUs::getInstance();
$aboutUs->loadAttributes();
$aboutUs->email = '[email protected]';
$aboutUs->reload();
echo $aboutUs->email; // '[email protected]';
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'
or
$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; // 'Киев, Украина'