如何在Kohana中实现多关系ORM



我在Kohana ORM中遇到关系问题。我有三个模型:用户,歌曲和标签。

User {
    has many Songs;
    has many Tags; (followed tags)
}
Song {
    belongs to User;
    has many Tags;
}
Tag {
    has many Users;
    has many Songs;
}

例:

  • 用户"Naimad"是以下标签:Deadmau5和Inpetto。
  • 每个标签有两首歌曲:
    1. Deadmau5标签有:The Veldt and Strobe,
    2. Inpetto标签有:Toca的奇迹和风暴。

我想从用户后跟的标签中获取这些歌曲,我不知道该怎么做。我知道这是愚蠢的例子,但我在发布这个问题之前尝试过:

$songs = ORM::factory('user', array('name' => 'Naimad'))
    ->tags
    ->songs
    ->find_all();
我认为你需要使用 ->with('tag')

->with('song')

$songs = ORM::factory('user', array('name' => 'Naimad'))
    ->with('tags')
    ->with('songs')
    ->find_all();

然后要访问该值,请在对象上执行循环$s->tags->field_name ...等

最新更新