我收到以下错误:
找不到AES_ENCRYPT方法。
请帮我在YII2中使用这个SQL方法。
public function beforeSave($insert) {
if (!parent::beforeSave($insert)) {
return false;
}
if($insert) {
$this->created_at = date('Y-m-d H:i:s');
}
$this->updated_at = date('Y-m-d H:i:s');
$this->name = AES_ENCRYPT("'.$this->name.'", "SECERT KEY");
return true;
}
答案 0 :(得分:2)
因为称之为
$this->name = AES_ENCRYPT("'.$this->name.'", "SECERT KEY");
将假设它是php
方法,并且会搜索php
个可用的函数,而您需要像CONCAT
,SUM
或任何其他函数一样运行它其他MYSQL
函数。
您应该以下列方式将 \yii\db\Expression()
用于
$enc = new \yii\db\Expression('AES_ENCRYPT("'.$this->name.'","SECERT KEY")');
$this->name=$enc;
或简化它
$this->name=new \yii\db\Expression('AES_ENCRYPT("'.$this->name.'","SECERT KEY")');
希望它可以帮助你。