如何在 Kohana 3 中链接多个 ORM 关系?

Posted

技术标签:

【中文标题】如何在 Kohana 3 中链接多个 ORM 关系?【英文标题】:How to chain several ORM relationships in Kohana 3? 【发布时间】:2011-01-23 16:49:14 【问题描述】:

我认为我在文档中找不到答案的相当简单的问题 (http://kohanaframework.org/guide/orm/relationships)

如果有意义的话,我需要一次定义与多个 模型(粗体)(每个模型都有对应的表)的关系。

我有几个模型之间的关系略有交织。

连接模型$_belongs_to用户。这段代码运行良好,很棒。但是连接也需要$_has_one song(我可以吃芝士汉堡吗??)和$has_one keyword,如果这有意义的话。

这是因为我想通过连接访问歌曲名称和关键字名称,例如使用$connection->song->name,然后使用$connection->keyword->name...

所以,问题是我似乎无法链接上面详述的关系,因为我只能为每个模型声明一个关系....那么我该怎么做呢?或者也许还有另一种我不知道的更简单的方法......

我想我是一个 n00b 并且希望在这方面得到一些帮助。干杯。

【问题讨论】:

【参考方案1】:

您可以在数组中收集关系:

class Model_Connection extends ORM 

   protected $_belongs_to = array(
      'user' => array(), 
   );

   protected $_has_one = array(
      'song' => array(),
      'keyword' => array(),
   );


PS。但似乎songkeyword 都必须在$_belongs_to 属性中(一个song 有多个connections,一个connection 属于song)。

【讨论】:

谢谢,虽然为了别人的参考,你必须使用正确的符号,包括后面的空白数组,所以 protected $_belongs_to = array( 'user'=> array(), );

以上是关于如何在 Kohana 3 中链接多个 ORM 关系?的主要内容,如果未能解决你的问题,请参考以下文章

Kohana 2.3.4 ORM - 删除数据透视表关系

Kohana 3 ORM 关系问题

Kohana 3 ORM:如何使用 2 个多对多关系执行查询

Kohana-v3 ORM 父关系

Kohana 3 ORM - 使用静态方法连接和 has_many 关系

Kohana 3 ORM:构造函数“加载后”