我在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。
- 每个标签有两首歌曲:
- Deadmau5标签有:The Veldt and Strobe,
- 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 ...等