[SOLVED] Rinominare un file usando l'ID del record appena creato

Ho una tabella, che semplificata, è: [sql]id, settore, immagine[/sql]

Quando carico un’immagine vorrei poterla rinominare nel seguente modo: settore_id.jpg

In fase di "Update" ho più o meno risolto in "Create", invecie, non so come fare e vorrei evitare di improvvisare.

Chiedo: dato che devo recuperare l’id del record appena creato, se metto l’upload del file in afterSave() è un approccio corretto o sto dicendo una fesseria?

Puoi anche fare nel controller subuto doppo il save()

$model->save();

$model->id - e l’id dell nuovo record e addesso lo puoi usare

Grazie mdomba, ma come faccio a definire il nome della mia immagine da registrare nel DB?

L’ID è disponibile solo dopo che il record è stato creato

Una soluzione sarebbe di salvare soltanto la prima parte “settore_”… la imagine la salvi con l’id… a per legere l’imagine… prendi il nome a aggiungi l’id…

l’altra soluzione sarebbe di fare l’update del record salvato un po prima… con il nome completo… per questo puoi usare saveAttributes() - http://www.yiiframework.com/doc/api/1.1/CActiveRecord#saveAttributes-detail

Perfetto mdomba, grazie. Ho usato la seconda soluzione


public function actionCreate(){

...

$model->immagine = $fileNewFullName;

$model->saveAttributes(array('immagine'));

...

}