Back to top

Autore Topic: [RISOLTO]JView Fatal error: Call to a member function on a non-object  (Letto 4596 volte)

Offline franant

  • Nuovo arrivato
  • *
  • Post: 30
    • Mostra profilo
Ciao a tutti,

sono di nuovo qui con un'altra domanda...
Durante lo sviluppo del mio componente, riscontro questo errore nella view:
Codice: [Seleziona]
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:
Codice: [Seleziona]
$numeroAlbum = $model->quantiAlbum();Da quello che ho capito, è come se $model non lo vedesse come oggetto... eppure $model l'ho dichiarato così:
Codice: [Seleziona]
$model = &$this->getModel();e nel file del model, la funzione quantiAlbum() è dichiarata così:
Codice: [Seleziona]
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
« Ultima modifica: 27 Ago 2010, 12:04:32 da franant »

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:JView Fatal error: Call to a member function on a non-object
« Risposta #1 il: 25 Ago 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
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline simone83

  • Appassionato
  • ***
  • Post: 362
  • Sesso: Maschio
    • Mostra profilo
Re:JView Fatal error: Call to a member function on a non-object
« Risposta #2 il: 25 Ago 2010, 11:00:37 »
Ciao, potresti dirmi come hai dichiarato la classe model?
Hai dichiarato il costruttore?
BRAINCODE
Da Psd a Joomla - Sviluppo componenti joomla - SEO con Joomla
x-brain

Offline franant

  • Nuovo arrivato
  • *
  • Post: 30
    • Mostra profilo
Re:JView Fatal error: Call to a member function on a non-object
« Risposta #3 il: 26 Ago 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

Codice: [Seleziona]

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

Offline franant

  • Nuovo arrivato
  • *
  • Post: 30
    • Mostra profilo
Re:JView Fatal error: Call to a member function on a non-object
« Risposta #4 il: 26 Ago 2010, 17:32:27 »
Adesso, non so perchè, mi da semplicemente una pagina bianca...

Ciao

Francesco

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:JView Fatal error: Call to a member function on a non-object
« Risposta #5 il: 26 Ago 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
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline simone83

  • Appassionato
  • ***
  • Post: 362
  • Sesso: Maschio
    • Mostra profilo
Re:JView Fatal error: Call to a member function on a non-object
« Risposta #6 il: 27 Ago 2010, 11:07:31 »

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

Codice: [Seleziona]

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
BRAINCODE
Da Psd a Joomla - Sviluppo componenti joomla - SEO con Joomla
x-brain

Offline franant

  • Nuovo arrivato
  • *
  • Post: 30
    • Mostra profilo
Re:JView Fatal error: Call to a member function on a non-object
« Risposta #7 il: 27 Ago 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

Offline franant

  • Nuovo arrivato
  • *
  • Post: 30
    • Mostra profilo
Re:JView Fatal error: Call to a member function on a non-object
« Risposta #8 il: 27 Ago 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

 



Web Design Bolzano Kreatif