2010-05-17 1 views
4

J'utilisais KohanaPHP ORM mais je ne peux pas l'utiliser avec ma structure de table de base de données. J'ai donc besoin d'un framework ou d'une bibliothèque ORM pour l'utiliser.PHP: ORM framework ou bibliothèque que je peux utiliser avec ma structure de table de base de données

Avec Kohana, je dois suivre une convention de nommage. Je ne peux pas utiliser un nom de champ (clé étrangère) comme 'idUnidadeMedida'.

Y a-t-il des suggestions?

Merci.


<?php 
class Model_Produto extends ORM { 
    protected $_table_name = 'produtos'; 
    protected $_primary_key = 'pro_codigo'; 
    protected $_has_one = array('unidade' => array('model' => 'unidade', 'foreign_key' => 'uni_codigo')); 
} 
?> 

<?php 
class Model_Unidade extends ORM { 
    protected $_table_name = 'unidades'; 
    protected $_primary_key = 'uni_codigo'; 
} 
?> 

Répondre

1

Doctrine est (couche d'abstraction et de base de données) ORM le plus puissant de PHP - il n'y a pas grand-chose, il ne peut pas faire. La version V2 (qui sera bientôt disponible) pourrait bien devenir la norme de facto, et elle verra l'intégration avec les frameworks (c'est-à-dire Zend, bien qu'elle soit aussi facilement utilisable en mode autonome).

+0

Puis-je définir ma base de données des structures de tableaux? Merci mec! – Thomas

+0

sure can - FAQ est en baisse mais la version en cache ici http://webcache.googleusercontent.com/search?q=cache:YsLABnBM2WIJ:www.doctrine-project.org/faq+doctrine+define+database+structure&cd=1&hl=en&ct = clnk & gl = uk – Andy

2

En fait, Kohana ORM est pas limitée. Dans le cas de ORM de Ko3, vous pouvez définir tout ce qui concerne vos relations comme je l'ai expliqué ici;

How do I relate tables with different foreign key names in Kohana ORM?

(regardez le code, pas d'explication, car ce gars-là a demandé FKs varchar)

+0

Je l'ai fait: protected $ _has_one = array ('unidade' => array ('model' => 'unidade', 'foreign_key' => 'pro_idUnidadeUso')); mais je m'y suis: Database_Exception [1054]: Unknown column 'unidades.pro_idUnidadeUso' dans 'where' [SELECT 'unidades' * FROM' 'unidades' OU unidades'.'pro_idUnidadeUso' = '2' ORDER BY. 'unidades'.'uni_codigo' ASC LIMIT 1] :( – Thomas

+0

@Thomas: le nom de votre clé étrangère est vraiment 'pro_idUnidadeUso'? Peut-être 'idUnidadeUso' seulement? C'est une erreur MySQL, pas une erreur de modèle :) Vous n'avez pas passé le bon nom FK. – Kemo

+0

Alors, laissez-moi vous expliquer mieux. J'ai 2 tables: produtos et unidades. Un produto a une table unidade et produto a un champ nommé pro_idUnidadeUso qui fait référence à un id unidade. Je l'ai? Merci. – Thomas

Questions connexes