Образно, создал ActiveForm, есть два поля, которые передают в value массив и еще одно скрытое с значением key, контроллер и модель идут стандартные, созданные через gii.
Код: Выделить всё
public function actionSendPulse()
{
$model = new Setting();
if ($model->load(Yii::$app->request->post())) {
if ($model->validate()) {
$model->save();
}
}
return $this->render('send-pulse', [
'model' => $model,
]);
}
Код: Выделить всё
public static function tableName()
{
return 'setting';
}
public function beforeSave($insert)
{
if (parent::beforeSave($insert)) {
$this->value = Json::encode($this->value);
return true;
} else {
return false;
}
}
public function afterFind()
{
$this->value = Json::decode($this->value);
}
/**
* {@inheritdoc}
*/
public function rules()
{
return [
[['key', 'value'], 'required'],
[['key'], 'string', 'max' => 64],
];
}
/**
* {@inheritdoc}
*/
public function attributeLabels()
{
return [
'id' => 'ID',
'key' => 'Key',
'value' => 'Value',
];
}