ฉันต้องใช้วิธี sql ของ AES_DECRYPT แต่สตริงไม่ได้ถอดรหัส
มันทำงานใน sql แต่ไม่ใช่ในวิธี yii2 afterfind
public function afterFind() {
parent::afterFind();
//$this->name = new Expression('AES_DECRYPT("'.$this->name.'", "key test") as name ');
$this->name = new Expression('cast(AES_DECRYPT("'.$this->encrypt_name.'", "key test") as char) as name');
//return true;
}
AES_DECRYPT
จะไม่ทำงานในafterFind()
เนื่องจาก MySql จะต้องประมวลผล (คุณ สามารถ ใช้ PHP ได้ แต่คุณก็มักจะต้องการเข้ารหัสใน PHP ด้วย) คุณสามารถใช้AES_DECRYPT
Expression เมื่อดึงข้อมูลของคุณโดยแก้ไขแบบสอบถามselect
หรือคล้ายกันได้หรือไม่ - person ldg   schedule 04.04.2018afterFind
ของฉันผิด คุณต้องการถอดรหัสระหว่างการสืบค้นหรือหลังจากนั้น? หากคุณเรียกafterFind()
ในโมเดล คุณจะดำเนินการ หลังจาก ดำเนินการค้นหา ดังนั้นการใช้คลาสเช่น yii\db\Expression กับแอตทริบิวต์ที่มีประชากรอยู่แล้วจึงไม่สมเหตุสมผล - person R13e   schedule 05.04.2018