In CakePHP 3, I would make use of a custom data type. 
See http://book.cakephp.org/3.0/en/orm/database-basics.html#adding-custom-types 
for more information and an example.

On Sunday, 23 August 2015 23:13:34 UTC+2, Alexander Slotty wrote:
>
> Hello, 
>
> I was hoping someone could help with my task. It should be "relatively" 
> simple: I want to have some form-fields encrypted when they are 
> added/edited and decrypted when they are looked up by cake.
> Here is the code that works for me in v2.7.2:
>
> core.php:
>
> Configure::write('Security.key','secretkey');
>
>
> app/Model/Patient.php:
>
> public $encryptedFields = array('patient_surname', 'patient_first_name');
>
> public function beforeSave($options = array()) {
>     foreach($this->encryptedFields as $fieldName){
>         if(!empty($this->data[$this->alias][$fieldName])){
>             $this->data[$this->alias][$fieldName] = Security::encrypt(
>                 $this->data[$this->alias][$fieldName],
>                 Configure::read('Security.key')
>             );
>         }
>     }
>     return true;
> }
>
> public function afterFind($results, $primary = false) {
>
>     foreach ($results as $key => $val) {
>         foreach($this->encryptedFields as $fieldName) {
>             if (@is_array($results[$key][$this->alias])) {
>                 $results[$key][$this->alias][$fieldName] = Security::decrypt(
>                     $results[$key][$this->alias][$fieldName],
>                     Configure::read('Security.key')
>                 );
>             }
>         }
>     }
>     return $results;
> }
>
>
> As I understand it I have to replace $this->data[] with the generated 
> entities for the model and the afterFind method with virtual fields, but I 
> just can't put it all together.
>
> Thanks for any pointers
>

-- 
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP

--- 
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to cake-php+unsubscr...@googlegroups.com.
To post to this group, send email to cake-php@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php.
For more options, visit https://groups.google.com/d/optout.

Reply via email to