2010-04-28 82 views
1

我有两个表格(项目/标签)。项目具有并且属于许多标签 - 标签具有并且属于许多项目。Kohana ORM在多对多关系中获得一个记录

这是没有问题的,我获取所有相关的标签,如:

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

但我如何可以获取只有一个...也许一个特定的一个?

在此先感谢!

+0

你怎么知道你想要哪一个?如果你有你想要的标准,你应该使用自己的ORM方法加载标签,而不是通过项目。 – 2010-04-28 12:42:46

回答

1

在Kohana中3,你可以这样做:

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

里面where()你把你想要的状态。

编辑:

我做了一些研究和Kohana的2.3.x版本的where语法是不同的,而不是where('somevalue', '=', $value)你应该写where('somevalue', $value)。或where('somevalue >', $value),where('somevalue !=', $value)

+0

感谢您的帮助。但我不知道我在做什么错,但它给了我下面的错误信息。看起来表格并不是内部加入的。 “有一个SQL错误:'where子句'中的未知列'item_id' - SELECT'tags'。* FROM('tags')WHERE'item_id' ='='ORDER BY'tags'.'name' ASC LIMIT 0 ,1“我使用btw。 kohana v2.3.4 – n00b 2010-04-28 14:02:49

+0

也许这是我的错误,我认为标签'belongs_to'项目。我会编辑答案。 – dusan 2010-04-28 14:13:57

+0

你碰巧知道如何在kohana 2.3.x中做到这一点? – n00b 2010-04-29 08:36:04

相关问题