1. Go to this page and download the library: Download yii2tech/ar-dynattribute library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
yii2tech / ar-dynattribute example snippets
class m??????_??????_create_user extends \yii\db\Migration
{
public function up()
{
$this->createTable('User', [
'id' => $this->primaryKey(),
'username' => $this->string()->notNull(),
'email' => $this->string()->notNull(),
'passwordHash' => $this->string()->notNull(),
// ...
'viewParams' => $this->text(), // field, which stores view parameters in serialized state
]);
}
public function down()
{
$this->dropTable('User');
}
}
use yii\db\ActiveRecord;
use yii2tech\ar\dynattribute\DynamicAttributeBehavior;
class User extends ActiveRecord
{
public function behaviors()
{
return [
'dynamicAttribute' => [
'class' => DynamicAttributeBehavior::className(),
'storageAttribute' => 'viewParams', // field to store serialized attributes
'dynamicAttributeDefaults' => [ // default values for the dynamic attributes
'bgColor' => 'green',
'showSidebar' => true,
],
],
];
}
public static function tableName()
{
return 'User';
}
// ...
}
$model = new User();
// ...
$model->bgColor = 'red';
$model->showSidebar = false;
$model->save(); // 'bgColor' and 'showSidebar' are serialized and stored at 'viewParams'
echo $model->viewParams; // outputs: '{"bgColor": "red", "showSidebar": false}'
$refreshedModel = User::findOne($model->getPrimaryKey());
echo $refreshedModel->bgColor; // outputs 'red'
echo $refreshedModel->showSidebar; // outputs 'false'