2011-06-24 2 views
1

Je viens de commencer à développer mon nouveau projet dans Yii, je suis nouveau à Yii ainsi que pour les structures et la structure MVC.Modèle pour méta-table dans Yii

Je voudrais obtenir quelques conseils sur la création de tableaux méta et le modèle pour cette table. Supposons que je souhaite stocker plusieurs poignées de discussion pour un utilisateur. J'ai créé une table pour stocker les détails de l'utilisateur comme user_id, user_name, email .. et une autre table qui est ma table meta id structure de , user_id, clé, valeur

Je voudrais associer ces deux tables dans un modèle afin que je puisse accéder à la valeur de la clé stockée dans la table meta comme $ user-> yahoo.

Merci d'avance.

+1

http: // stackoverflow .com/questions/3309084/yii-using-relation-a-one-to-get-data-from-the-related-table-to-display-in-lis; http://stackoverflow.com/questions/3579852/yii-question-about-relations-function-in-ar-model-many-to-one-relationship – hakre

Répondre

0

Créez simplement un modèle pour la table méta ainsi que la table primaire. Ensuite, si vous avez une relation de clé forign avec cette table, vous pourrez accéder au modèle de table de méta en tant que propriété de la table primaire. Pour thigs plus clair:

Disons que nous avons ces deux tableaux:

clients -id -nom -address -nom -email

customer_meta -id -customer_id -meta_key -meta_value

Vous générez deux modèles utilisant Gii pour ces deux tables. Ensuite, si vous utilisez des tables MySQL et InnoDB et de créer une relation clé foriegn ebtween customer.id -> customer_meta.customer_id vous serez en mesure d'accéder aux méta-données dans le modèle client en tant que tel:

// this will echo get the first meta value 
$model = new customer; 
$customer = $model->loadModel(3); 
echo $customer->customer_meta[0]->meta_value; 

// or loop through the meta data 
foreach($customer->customer_meta as $meta) { 

    echo 'Name: '.$meta->meta_key.' Value: '.$meta->meta_key.'<br />'; 
} 
-1

utiliser des getters et des setters. Définir une méthode de getYahoo et cette méthode de faire table de consultation pour récupérer la valeur que vous voulez

0

voir: http://www.yiiframework.com/doc/guide/1.1/en/database.arr

Il vous guide à travers un exemple de base semblable à ce que vous voulez faire. Notez que si vous configurez votre base de données avec des clés étrangères, les outils Gii créeront cette relation pour vous dans votre modèle. Si vous utilisez MySql, MySqlWorkbench ou d'autres outils similaires peuvent être utiles pour la gestion des clés étrangères, vous devez juste vous assurer que vous utilisez des tables de type InnoDB.

Questions connexes