I am writing a behavior which checks a field for duplicates in beforeSave() 
and updates the created row in afterSave(). 

I am wondering what happens to $model->data array if I modify it directly 
or I use $model->find() or $model->save() while in the callback. 

Do other behaviors and callbacks also receive the same data array? 
Am I responsible to leave it as-is after I finish modifying the data? 
Do I have to make another instance of the model and do *find*s and *save*s 
with that instance?

<?php 
function beforeSave(Model $model){
$value = $model->data[$model->alias]['unique_field'];
$duplicates = $model->find('all', array(
'conditions' => array('unique_field', $value)
));
if ($duplicates) { /* ... */ }
*//what happens to $model->data here?*
}

function afterSave(Model $model, $created){
$value = $model->data[$model->alias]['unique_field'];
$model->data[$model->alias]['unique_field'] = strrev($value); //for 
demonstration purposes
$model->save($model->data, array('callbacks'=>false));
*//what happens to $model->data here?*
}

Thanks for the input!

P.S. I have to update in afterSave because the unique field depends on the 
id, and has a temp value before the id is available.

-- 
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 post to this group, send email to cake-php@googlegroups.com.
To unsubscribe from this group, send email to 
cake-php+unsubscr...@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php?hl=en.


Reply via email to