Kohana3 ORM 需要澄清关系

Posted

技术标签:

【中文标题】Kohana3 ORM 需要澄清关系【英文标题】:Kohana3 ORM Relationship Clarification needed 【发布时间】:2011-01-14 10:56:24 【问题描述】:

ORM 还有一个问题。

我有三个模型:user.php、tag.php 和 /user/tag.php。

user.php 名称 通过

tag.php 名称 蛞蝓

/user/tag.php 身份证 tag_id user_id

我创建的 user 和 user_tag 模型之间有很多关系。所以我使用以下代码获取用户标签:

$user = ORM::factory('user', $user_id);
$tags = $user->tags->find_all();

这是我的问题,是否可以建立自动查询标签名称的关系(或者我应该使用 join() 还是离开 ORM 并为此使用查询构建器)?

【问题讨论】:

【参考方案1】:

您只需要has_many through relationship:

$protected $_has_many = array(
   'tags' => array(
      'model'   => 'tag',
      'through' => 'user_tag',
   ),
);

所以,$user->tags->find_all() 将返回一个由Model_Tag 对象组成的数组。

【讨论】:

以上是关于Kohana3 ORM 需要澄清关系的主要内容,如果未能解决你的问题,请参考以下文章

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

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

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

如何在 Kohana 3 ORM 关系中指定两个键

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

SQLAlchemy 一对多关系澄清