Je suis en train de stocker des données cryptées dans ma base de données d8 et décrypter pour l'afficher aux utilisateurs autorisés:drupal 8 node-> setTitle
use \Defuse\Crypto\Key;
use \Defuse\Crypto\Crypto;
function my_module_node_load($nodes) {
$key = loadEncryptionKeyFromConfig();
$title = $nodes[1]->getTitle(); // $title is "def369u8765"
$decrypted_title = Crypto::decrypt($title, $key); //$decrypted_title is 'a test note'
$nodes[1]->setTitle($decrypted_title);
$nodes[1]->getTitle(); // returns 'a test note'
return $nodes;
}
Quand il se fait affiché sur ma page, il est toujours la version cryptée. Dans la base de données, node_field_revision affiche toujours la version cryptée et l'horodatage est inchangé depuis hier.
Qu'est-ce que je fais mal? comment devrais-je retourner la version décryptée?
Je ne veux pas le décrypter dans ma base de données. Il doit rester crypté sur le disque.
EDIT: J'ai ajouté $ nodes [1] -> save(); et il est (de manière prévisible) entré dans une boucle infinie parce que node_load est appelé dans le cadre du processus save().
EDIT: Je sais que je ne devrais pas coder le [1]! Une fois que j'ai un noeud trié, je vais le mettre dans une boucle sur tous les nids dans $ noeuds