Bonjour à tous,
en reprenant le tutoriel du composant Hello World MVC du wiki Joomla, j'ai voulu faire un composant pour gérer une base de données de News pour mon site.
J'ai réussi à installer le composant et il m'affiche bien mes news stockées dans la base de données, leur id, leur titre...
Le problème c'est que je ne peux effectuer aucune opération sur mes données, que je tente de supprimer, sauvegarder une nouvelle actu ou une modification d'actu, je tombe sur deux erreurs, mais la deuxième est sûrement la source de la première :
Warning: Invalid argument supplied for foreach() in /opt/lampp/htdocs/digicom/libraries/joomla/database/database/mysql.php on line 377
Fatal error: Call to undefined method TableActu::getErrorMsg() in /opt/lampp/htdocs/digicom/administrator/components/com_actu/models/actu.php on line 100
Voici la partie du code concernée, dans le modèle actu :
(la ligne 100 c'est le $this->setError( $row->getErrorMsg() ); Et puis ça dépend de l'opération que je souhaite faire, pour delete ce sera le même message mais pour la ligne dans la fonction delete ).
Ma table actu :
Je ne suis pas sûr d'où peut venir le problème, peut être du 'post' comme j'ai vu sur un sujet similaire mais en ayant changé cette ligne ça n'a rien arrangé.
Pour faire simple c'est un "copié collé" du composant du tutoriel, arrangé avec mes données, mes noms de classes et tout le toutim, j'avais essayé le composant hello world il marchait très bien à ce moment là.
J'ai cherché sur Google et sur le forum pour trouver une solution, mais celles que j'ai trouvées ne semblent pas marcher, je vous demande donc un peu d'aide en vous remerciant d'avance pour vos réponses .
EDIT: J'ai essayé de remplacer le $row->getErrorMsg(à par $this->_db->getErrorMsg() mais là ça me déconnecte carrément de l'interface administrateur (avec impossibilité de revenir, il faut que je ferme le navigateur et que je relance !).
en reprenant le tutoriel du composant Hello World MVC du wiki Joomla, j'ai voulu faire un composant pour gérer une base de données de News pour mon site.
J'ai réussi à installer le composant et il m'affiche bien mes news stockées dans la base de données, leur id, leur titre...
Le problème c'est que je ne peux effectuer aucune opération sur mes données, que je tente de supprimer, sauvegarder une nouvelle actu ou une modification d'actu, je tombe sur deux erreurs, mais la deuxième est sûrement la source de la première :
Warning: Invalid argument supplied for foreach() in /opt/lampp/htdocs/digicom/libraries/joomla/database/database/mysql.php on line 377
Fatal error: Call to undefined method TableActu::getErrorMsg() in /opt/lampp/htdocs/digicom/administrator/components/com_actu/models/actu.php on line 100
Voici la partie du code concernée, dans le modèle actu :
Code:
/** * Method to store a record * * @access public * @return boolean True on success */ function store() { $row =& $this->getTable(); $data = JRequest::get( 'post' ); // Bind the form fields to the actu table if (!$row->bind($data)) { $this->setError($this->_db->getErrorMsg()); return false; } // Make sure the actu record is valid if (!$row->check()) { $this->setError($this->_db->getErrorMsg()); return false; } // Store the web link table to the database if (!$row->store()) { $this->setError( $row->getErrorMsg() ); return false; } return true; } /** * Method to delete record(s) * * @access public * @return boolean True on success */ function delete() { $cids = JRequest::getVar( 'cid', array(0), 'post', 'array' ); $row =& $this->getTable(); if (count( $cids )) { foreach($cids as $cid) { if (!$row->delete( $cid )) { $this->setError( $row->getErrorMsg() ); return false; } } } return true; }
Ma table actu :
Code:
<?php /** * Actu table class * * @package Joomla.Tutorials * @subpackage Components * @link http://docs.joomla.org/Developing_a_Model-View-Controller_Component_-_Part_4 * @license GNU/GPL */ // No direct access defined('_JEXEC') or die('Restricted access'); /** * Actu Table class * * @package Joomla.Tutorials * @subpackage Components */ class TableActu extends JTable { /** * Primary Key * * @var int */ var $id = null; /** * @var string */ var $titre = null; /** * @var string */ var $contenu = null; /** * Constructor * * @param object Database connector object */ function __construct( &$db ) { parent::__construct('#__actu', 'id', $db); } }
Pour faire simple c'est un "copié collé" du composant du tutoriel, arrangé avec mes données, mes noms de classes et tout le toutim, j'avais essayé le composant hello world il marchait très bien à ce moment là.
J'ai cherché sur Google et sur le forum pour trouver une solution, mais celles que j'ai trouvées ne semblent pas marcher, je vous demande donc un peu d'aide en vous remerciant d'avance pour vos réponses .
EDIT: J'ai essayé de remplacer le $row->getErrorMsg(à par $this->_db->getErrorMsg() mais là ça me déconnecte carrément de l'interface administrateur (avec impossibilité de revenir, il faut que je ferme le navigateur et que je relance !).
Commentaire