Joomla.it Forum

Non solo Joomla... => Sviluppo => : franant 24 Aug 2010, 19:18:34

: [RISOLTO]JView Fatal error: Call to a member function on a non-object
: franant 24 Aug 2010, 19:18:34
Ciao a tutti,

sono di nuovo qui con un'altra domanda...
Durante lo sviluppo del mio componente, riscontro questo errore nella view:
:
Fatal error: Call to a member function quantiAlbum() on a non-object in opt/lampp/htdocs/fatefelici/components/com_galleria/views/principale/view.html.php on line 14.
La linea 14 del view.html.php contiene questo codice:
:
$numeroAlbum = $model->quantiAlbum();Da quello che ho capito, è come se $model non lo vedesse come oggetto... eppure $model l'ho dichiarato così:
:
$model = &$this->getModel();e nel file del model, la funzione quantiAlbum() è dichiarata così:
:
function quantiAlbum()
{
$db =& JFactory::getDBO();

$queryNumAlbum = "SELECT id FROM #__galleria_album";

$db->setQuery($queryNumAlbum);
$db->query();

$numRighe = $db->getNumRows();


return $numRighe;
}

Sinceramente non riesco a trovare la soluzione a quest'errore...

Che potrebbe essere?

Grazie mille

Francesco
: Re:JView Fatal error: Call to a member function on a non-object
: mmleoni 25 Aug 2010, 09:54:01
prova a verificare di includere il file model corretto (attenzione ai nomi); in caso metti un die(); all'inizio del file e lo vedi subito.

il sql è concettualmente sbagliato, se ti serve il numero delle righe devi usare select count(*): è inutile sprecare banda, memoria e caricare il server per recuperare l'intero record set.

ciao,
marco
: Re:JView Fatal error: Call to a member function on a non-object
: simone83 25 Aug 2010, 11:00:37
Ciao, potresti dirmi come hai dichiarato la classe model?
Hai dichiarato il costruttore?
: Re:JView Fatal error: Call to a member function on a non-object
: franant 26 Aug 2010, 17:29:40
prova a verificare di includere il file model corretto (attenzione ai nomi); in caso metti un die(); all'inizio del file e lo vedi subito.

Si, ho verificato, ed il model giusto viene caricato correttamente

il sql è concettualmente sbagliato, se ti serve il numero delle righe devi usare select count(*): è inutile sprecare banda, memoria e caricare il server per recuperare l'intero record set.

Ok, cambiato. Effettivamente era un po' che non mettevo mano all'SQL, e mi ero dimenticato della funzione count()... XD

Ciao, potresti dirmi come hai dichiarato la classe model?
Hai dichiarato il costruttore?

Ho usato la dichiarazione standard usata nel tutorial di joomla!, quindi, nel mio caso

:

class GalleriaModelGalleria exdends JModel
{

//E le varie funzioni della classe

}


E ho lo stesso problema sia con che senza costruttore (e tra l'altro nel costruttore richiamo semplicemente parent::__construct();)

Ciao

Francesco
: Re:JView Fatal error: Call to a member function on a non-object
: franant 26 Aug 2010, 17:32:27
Adesso, non so perchè, mi da semplicemente una pagina bianca...

Ciao

Francesco
: Re:JView Fatal error: Call to a member function on a non-object
: mmleoni 26 Aug 2010, 18:03:31
non è che ti sei dimenticato il die() di cui sopra?

prova ad attivare il debug e prova a chiamare il metodo getName() sul model, altro non mi viene in mente.

ciao,
marco
: Re:JView Fatal error: Call to a member function on a non-object
: simone83 27 Aug 2010, 11:07:31

Ho usato la dichiarazione standard usata nel tutorial di joomla!, quindi, nel mio caso

:

class GalleriaModelGalleria exdends JModel
{

//E le varie funzioni della classe

}


E ho lo stesso problema sia con che senza costruttore (e tra l'altro nel costruttore richiamo semplicemente parent::__construct();)


Ciao, parent::__construct() è fondamentale, GalleriaModelGalleria estende JModel, senza parent::__construct() GalleriaModelGalleria non istanzia la classe Jmodel e non la estende, quindi dovrebbe essere per questo che non ti funziona.

Ho fatto una prova su un componente che ho creato e se tolgo parent::_construct mi da il tuo errore ovvero mi dice che sto chiamando una funzione su una variabile che non è un oggetto.

Quin di assicurati che la funzione

function __construct() {
   parent::__construct();
}

sia dichiarata.

Spero di esserti stato di aiuto
: Re:JView Fatal error: Call to a member function on a non-object
: franant 27 Aug 2010, 11:53:18
non è che ti sei dimenticato il die() di cui sopra?

c'è... però continua a darmi la pagina bianca...

prova ad attivare il debug e prova a chiamare il metodo getName() sul model, altro non mi viene in mente.

idem, pagina bianca...

Ciao, parent::__construct() è fondamentale, GalleriaModelGalleria estende JModel, senza parent::__construct() GalleriaModelGalleria non istanzia la classe Jmodel e non la estende, quindi dovrebbe essere per questo che non ti funziona.

Sisi, il parent::__construct() c'è. Adesso però non ho più il Fatal Error, ma semplicemente una pagina bianca... adesso sto rivedendo tutto il codice del model, del view e dell'entry point, per vedere se ho dimenticato qualcos'altro... cosa che sicuramente è successa, altrimenti non avrei la pagina bianca

Grazie a tutti

Ciao
Francesco
: Re:JView Fatal error: Call to a member function on a non-object
: franant 27 Aug 2010, 12:03:59
ok, problema risolto. Era una cosa stupidissima. In pratica nel file di template del componente usavo un <div>, che a quanto pare a joomla non piace. L'ho sostituito con un paragrafo, e funziona.

Grazie a tutti per il supporto. Siete stati di grande aiuto :)

Grazie mille

Ciao

Francesco