在我的应用程序中,我有 2 个表、书籍和标签,以及链接表 book_tags。链接表还包含该书被标记为该特定标签的次数。我可以通过这样做添加标签
$book->add_tag($tag, { tag_count => 10 });
但是当我检索一本书的标签时
@tags = $book->tags();
它似乎没有从链接表返回值。
有没有一种方法可以从链接表中获取值而无需手动操作?
最佳答案
由于您有一个名为 book_tags
的联接表,因此您必须创建从 books
表到 的
关系。 many_to_many
关系books
表本身的 has_manyhas_many
关系应从表 book_tags
中检索与图书关联的标签的 id
。您可能需要添加类似于以下内容的关系:
在Your::App::Schema::Result::Book
中:
__PACKAGE__->has_many( book_tags => 'Your::App::Schema::Result::BookTag', 'book_id' );
__PACKAGE__->many_to_many( tags => 'book_tags', 'tag' );
在Your::App::Schema::Result::BookTag
中:
__PACKAGE__->belongs_to( tag => 'Your::App::Schema::Result::Tag', 'tag_id' );
关于perl - 如何从 DBIx::Class 中的链接表获取值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1326601/