J'ai trouvé une solution à mon problème :) Même si je ne sais pas trop si c'est "propre" de faire comme cela.
J'ai remplacé le saveField par une requête update , ce qui revient au même je pense :s .
Je vous joint le code , on sait jamais sa peu servir à quelqu'un d'autre.
public function afterSave(Model $model,$created,$options = array())
{
foreach($this->options$model->alias]'fields'] as $field => $path)
{
if(isset($model->data$model->alias]$field.'_file']))
{
$file = $model->data$model->alias]$field.'_file'];
debug($file);
$extension = strtolower(pathinfo($file'name'], PATHINFO_EXTENSION));
$path = $this->getUploadPath($model,$path,$extension);
$dirname = dirname($path);
if(!file_exists(WWW_ROOT . $dirname))
{
mkdir(WWW_ROOT . $dirname , 0777,true);
}
$model->deleteOldUpload($field);
move_uploaded_file(
$file'tmp_name'],
WWW_ROOT. $path
);
chmod(WWW_ROOT. $path , 0777);
if($field == 'photo_ressource')
{
//on change le chemin en base pour que htmlHelper prenne directement l'image
$path = str_replace('img/','', $path);
}
//on sauvegarde en base de donnée
// $model->saveField($field ,$path);
$queryUpdate = "UPDATE `".$model->useTable."`
SET `".$field."` = '".$path."'
WHERE `".$model->primaryKey."` ='".$model->id."' ;";
$model->query($queryUpdate);
}
}
}