如何解决如何在CakePHP 4.1中注册afterMarshal
我注意到4.1中有一个新的afterMarshal事件。
放在哪里?在表模型中?又如何?
我希望每次加载结果时都要进行一些处理。
感谢帮助
解决方法
用于通过“ CAKEPHP 4”中的模型进行加密和解密
public $encryptedFields = ['first_name','last_name'];
public function beforeSave($event,$entity,$options)
{
foreach($this->encryptedFields as $fieldName)
{ if($entity->has($fieldName))
{ $entity->set($fieldName,encodeBeforeSave($entity->get($fieldName)));}
} return true;
}
public function beforeFind( $event,$query,$options)
{ $query->formatResults(
function ($results)
{ return $results->map(function ($row){
foreach($this->encryptedFields as $fieldName)
{
if(isset($row[$fieldName]) && !empty($row[$fieldName]) )
{
$row[$fieldName] = decodeBeforefind($row[$fieldName]);
}
}
return $row;
});
}
);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。