Kohana3 ORM: Attributs chargement clé / valeur

voix
0

J'ai deux MySQL-tables (trop simpliste):

articles
- id
- description

article_attributes
- article_id
- attribute_name
- attribute_value

Ainsi, chaque articlepeut avoir un nombre illimité de attributes. Pour le articlesj'ai un modèle Kohana_ORM

<?php class Model_Article extends ORM {} ?>

Lors du chargement du modèle que je voudrais avoir accès à tous les attributs.

Exemple:

<?php
$article = new Model_Article(1); // or ORM::factory('article', 1);
echo $article->description;
echo $article->attribute->foo;
echo $article->attribute->bar;
?>

Quelqu'un pourrait-il s'il vous plaît me diriger dans la bonne direction comment cela ACHIVE?

Créé 17/08/2010 à 17:05
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
4

Je pense que vous devez créer deux modèles, un pour chaque table, puis définissez la relation entre eux.

Essaye ça,

class Model_Article extends ORM
{
    protected $_has_many = array('attributes' => array());
}

class Model_Atribute extends ORM
{
    protected $_table_name = 'article_attributes';
    protected $_belongs_to = array('article' => array());
}

Ensuite, vous pouvez le faire,

$article = ORM::factory('article', 1);
$article_attributes = $article->attributes->find_all();

Je ne sais pas si vous avez résolu ce problème ou non, mais j'espère que cette réponse aide.

Créé 25/08/2010 à 23:06
source utilisateur

voix
1

Vous devriez lire le guide de Kohana ORM . Il traite un à un, un à plusieurs (votre cas) et beaucoup de nombreuses relations. Je ne l' ai pas copier collé le code ici parce qu'il ya un peu.

Créé 17/08/2010 à 23:56
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more