This is a model.
public function genCode($width = 15) { $inputKey = $this->password(); $string = Yii::$app->security->generateRandomString($width); $this->_encrypted = Yii::$app->security->encryptByKey( $string, $inputKey ); // $decrypted = Yii::$app->security->decryptByKey( $encrypted, $inputKey, $info = null ); return $this->_encrypted; } public function saveCodeSample() { $code = new Code; $code->type = 'sample'; $code->owner_id = 1; $code->value = $this->genCode(); return $code->save(); } private function password() { $inputKey = 'averyrandomandverylongstring'; $this->_password = $inputKey; return $this->_password; }
This is a sample controller
public function actionTest() { $codes = new CodesSetup; return var_dump($codes->saveCodeSample()); }
This does not give me any error, but the PROBLEM - all data is stored in the database, except for the encrypted one.
Model Rule:
public function rules() { return [ [['type', 'owner_id', 'code'], 'required'], [['owner_id', 'status', 'created_at', 'updated_at', 'author_id', 'updater_id'], 'integer'], [['type', 'code'], 'string', 'max' => 255] ]; }
source share