我在一个项目中使用 Symfony 1.4 和 Doctrine,用户可以将图像作为头像上传。我不想将文件名存储在 db 中,而是一个布尔值。那是我相关的 schema.yml 部分:
nyUserProfile:
...
has_avatar:
type: boolean
notnull: true
default: false
我覆盖了 sfValidatedFile 保存方法只是为了保存一些缩略图而不调用 parent::save 函数,因为我不关心原始文件:
// Creamos los thumbnails
$config = sfConfig::get('app_images_avatars');
$original = new sfImage($this->getTempName());
foreach($config['sizes'] as $thumbnail_name => $thumbnail_info){
$thumb = $original->copy();
$thumb->setQuality($thumbnail_info['quality']);
$thumb->thumbnail($thumbnail_info['width'],$thumbnail_info['height'],$thumbnail_info['method'],'#000000');
$thumb->saveAs($this->getPath() . DIRECTORY_SEPARATOR . $file . '_' . $thumbnail_name . $thumbnail_info['extension'],$thumbnail_info['mime']);
}
这可以很好地保存拇指,但布尔值 false 存储在字段 has_avatar 的 db 中,我想这是因为根本没有调用 parent::save 方法,但你知道,我不想存储原始文件,只是从中制作缩略图。
是否有一种方法可以手动设置存储在 db 中的值,以防图像成功通过验证器测试?