2010-04-28 14 views
1

J'ai deux tables (articles/étiquettes). L'article a et appartient à de nombreux tags - tag a et appartient à de nombreux articles.Kohana ORM obtenir un enregistrement dans la relation plusieurs-à-plusieurs

Il n'y a pas de problème pour moi de récupérer toutes les balises connexes comme:

$item = ORM::factory('item', 4); 
foreach($item->tags as $tag){....} 

Mais comment puis-je chercher qu'un seul ... et peut-être un particulier?

Merci d'avance!

+0

Comment savez-vous lequel vous voulez? Si vous avez des critères pour celui que vous voulez, vous devez charger le tag en utilisant ses propres méthodes ORM, et non via l'élément. –

Répondre

1

En Kohana 3, vous pouvez le faire:

$item = ORM::factory('item', 4); 
$tag = $item->tags->where('somevalue','=',$value)->find(); 
if($tag->loaded()) {...} 

intérieur where() vous mettez la condition que vous voulez.

Edit:

J'ai fait un peu de recherche et Kohana 2.3.x la syntaxe where est différente, au lieu de where('somevalue', '=', $value) vous devriez écrire where('somevalue', $value). Ou where('somevalue >', $value), where('somevalue !=', $value), etc.

+0

merci pour votre aide. Cependant, je ne suis pas sûr de ce que je fais mal, mais il me donne un message d'erreur suivant. il semble que les tables ne soient pas jointes à l'intérieur. "Il y avait une erreur SQL: Colonne inconnue 'item_id' dans 'clause where' - SELECT' tags'. * FROM ('tags') WHERE' item_id' = '=' ORDER BY 'tags'.'nom' ASC LIMIT 0 , 1 "J'utilise BTW. kohana v2.3.4 – n00b

+0

Peut-être que c'était mon erreur, je pensais que tag 'belongs_to' élément. Je vais éditer la réponse. – dusan

+0

savez-vous comment faire cela dans kohana 2.3.x? – n00b