pokok
(Pokok1)
March 3, 2012, 10:48am
1
Qualcuno mi saprebbe dire cosa può generare questo errore:
Image and its behaviors do not have a method or closure named "resize".
Tale estensione l’ho già installata in altra applicazione e funziona perfettamente, non riesco a capire cosa succede in questo caso
Questa è la parte nel Controller in cui chiamo il resize
public function actionUpdate($id)
{
...
$thumb = Yii::app()->image->load($imageLocation.$finalName);
$thumb->resize(200, 100);
$thumb->save();
...
}
Grazie
Hai impostato correttamente il file di configurazione affinché "veda" il modulo image?
pokok
(Pokok1)
March 3, 2012, 12:30pm
3
Grazie Senso per la risposta.
Penso di averlo impostato correttamente, visto e rivisto mille volte:
...
'import'=>array(
...
'application.helpers.*', // ESTENSIONE IMAGE
...
),
...
'components'=>array(
...
// ESTENSIONE IMAGE
'image'=>array(
'class'=>'application.extensions.image.CImageComponent',
// GD or ImageMagick
'driver'=>'GD',
// ImageMagick setup path
'params'=>array('directory'=>'/extensions/image/drivers/'),
),
// end ESTENSIONE IMAGE
...
),
...
Provato a riscaricare l’estensione e reinstallare, ma nulla…
lvaghi
(Leopoldo Vaghi)
March 3, 2012, 6:37pm
4
Anch’io uso Image, e funziona bene. La tua chiamata a resize è corretta. Nella configurazione è inutile specificate il path verso Imagemagik dato che usi GD: io lo toglierei. Controlla anche di non avere da qualche parte un altro modulo che si chiama Image…
… spiacente di non avere idee migliori…
pokok
(Pokok1)
March 5, 2012, 8:15am
5
Anch’io uso Image, e funziona bene. La tua chiamata a resize è corretta. Nella configurazione è inutile specificate il path verso Imagemagik dato che usi GD: io lo toglierei. Controlla anche di non avere da qualche parte un altro modulo che si chiama Image…
… spiacente di non avere idee migliori…
Grazie Alichin, ho controllato ma nulla… grazie lo stesso
davi-chan
(Dpasetti)
March 5, 2012, 12:42pm
6
Sembra tutto corretto.
Ti proporrei di fare un pò di debug . Puoi provare a modificare il controller in questo modo…
$thumb = Yii::app()->image->load($imageLocation.$finalName);
print_r(get_class_methods($thumb)); exit();
$thumb->resize(400, 100)->rotate(-45)->quality(75)->sharpen(20);
$thumb->save(); // or $image->save('images/small.jpg');
Dovrebbe restituirti qualcosa del genere…
Array([0] => factory [1] => __construct [2] => __get [3] => resize [4] => crop [5] => rotate [6] => flip [7] => quality [8] => sharpen [9] => save [10] => render)
Tra i metodi elencati dovrebbe esserci resize …
Mi sorge un dubbio: avete sistemato per bene anche l’estensione CArray? Ricordo che ha un componente aggiuntivo Image che “a suo tempo” mi diede dei problemi. Mi confermate che lo avete installato? Se non ricordo male dovrebbe essere dentro alla cartella helpers quando si scarica l’estensione.
pokok
(Pokok1)
March 5, 2012, 6:45pm
8
Grazie a tutti per il contributo.
Ho trovato il problema e mi sento un po’ un …
Alichin c’aveva praticamente pigliato
Nel controller al metodo actionUpdate($id)
poco prima del resize avevo la seguente riga che giustamente generava l’errore
$modelImage = new Image;
Image è il Model della tabella art_image nella quale salvo i dati delle immagini
Grazie ancora a tutti
Nella prossima versione di Yii avremo finalmente i namespace ed errori di questo tipo non ci dovrebbero più essere. Grazie a te per aver condiviso con noi.