2010-04-28 144 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

相關問題