我有两个表格(项目/标签)。项目具有并且属于许多标签 - 标签具有并且属于许多项目。Kohana ORM在多对多关系中获得一个记录
这是没有问题的,我获取所有相关的标签,如:
$item = ORM::factory('item', 4);
foreach($item->tags as $tag){....}
但我如何可以获取只有一个...也许一个特定的一个?
在此先感谢!
我有两个表格(项目/标签)。项目具有并且属于许多标签 - 标签具有并且属于许多项目。Kohana ORM在多对多关系中获得一个记录
这是没有问题的,我获取所有相关的标签,如:
$item = ORM::factory('item', 4);
foreach($item->tags as $tag){....}
但我如何可以获取只有一个...也许一个特定的一个?
在此先感谢!
在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)
等
感谢您的帮助。但我不知道我在做什么错,但它给了我下面的错误信息。看起来表格并不是内部加入的。 “有一个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
也许这是我的错误,我认为标签'belongs_to'项目。我会编辑答案。 – dusan 2010-04-28 14:13:57
你碰巧知道如何在kohana 2.3.x中做到这一点? – n00b 2010-04-29 08:36:04
你怎么知道你想要哪一个?如果你有你想要的标准,你应该使用自己的ORM方法加载标签,而不是通过项目。 – 2010-04-28 12:42:46