Kohana3 ORM 关系需要澄清

发布于 2024-10-12 04:13:46 字数 509 浏览 7 评论 0原文

还有一个关于 ORM 的问题。

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

user.php
姓名
通过

tag.php
姓名
蛞蝓

/user/tag.php
编号
标签 ID
用户 ID

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

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

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

Have another problem with ORM.

I have three models: user.php, tag.php and /user/tag.php.

user.php
name
pass

tag.php
name
slug

/user/tag.php
id
tag_id
user_id

I created has many relation between user and user_tag model. So I'm getting users tags using following code:

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

And here's my question, is it possible to build relation that will be automatically query for tags names too (or should I use join() or leave ORM and take query builder for this)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

狼性发作 2024-10-19 04:13:46

您所需要的只是一个 has_many through 关系

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

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

All you need is a has_many through relationship:

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

So, $user->tags->find_all() will return an array of Model_Tag objects.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文