ユーザーが画像をアバターとしてアップロードできるプロジェクトで、Doctrine で Symfony 1.4 を使用しています。ファイル名をdbに保存したくありませんが、ブール値を保存します。それは私の関連する schema.yml セクションです:
nyUserProfile:
...
has_avatar:
type: boolean
notnull: true
default: false
元のファイルは気にしないので、parent::save 関数を呼び出さずにいくつかのサムネイルを保存するためだけに sfValidatedFile 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']);
}
それは親指をうまく保存しますが、フィールドhas_avatarでブール値のfalse値がdbに保存されます。これは、parent::saveメソッドがまったく呼び出されないためだと思いますが、元のファイルを保存したくないので、サムネイルを作成するだけです。
イメージがバリデータ テストに合格した場合に備えて、db に格納されている値を手動で設定する方法はありますか?