Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour
je souhaite dériver mon model user. Ma table s'appelle user.
La dérivation de cette classe est censé taper sur une autre table d'une autre BDD qui ne porte pas le même nom : userCommon
Le souci c'est qu'il me génère une erreur : Primary key column(s) (id) are not columns in this table ()
Lorsque mes deux tables ont le même nom tout va bien. Mais des que je change le nom de la deuxième table, il ne semble pas prendre en compte ma variable $_name du model dérivé....
Une solution ?
merci
class User extends Zend_Db_Table_Abstract { protected $_name = 'user'; protected $_id = 'id'; } class UserCommon extends User { protected $_name = 'userCommon'; protected $_id = 'id'; }
Dernière modification par iLoLo21 (25-09-2008 11:54:28)
Hors ligne
Hello,
Apparemment le problème est plutôt sur :
protected $_id = 'id';
de la table UserCommon.
La colonne 'id' est-elle bien présente dans UserCommon et est-ce bien la clé primaire ?
A+
Hors ligne
oui oui la colonne id est bien présente. J'ai déjà vérifié
Hors ligne
La doc
http://framework.zend.com/manual/en/zend.db.table.html
parle de $_primary :
protected $_primary = array("user_id");
Hors ligne
elle parle aussi de
protected $_primary = 'user_id';
je en suis pas sur que cela change grand chose
Hors ligne
la commande
protected function _setupTableName() { $this->_name = 'userCommon'; parent::_setupTableName(); }
semble régler mon probleme mais à moitié seulement. le controlleur de la class user est appelé deux fois, ce qui fait que $this->_name est réinitialiser à 'user' juste apres avoir été initialisé avec 'commonUser'... Je comprend pas pourquoi
Hors ligne
Hello,
Tout à fait fte, c'est $_primary et pas $_id !
protected $_primary = 'id';
A+
Hors ligne
oui c'est une erreur de ma part dans le post. mais c'est bien $_primary dans le code.
Hors ligne