Laravel在标签和帖子之间有很多东西()

 嗷唔喵_105 发布于 2023-02-07 14:05

我想获得帖子的标签.

这是我的数据库与数据透视表

post
  body

tag
  name

post_tag
  post_id
  tag_id

到目前为止,我可以看到并能够理解hasManyThrough()这一点.但是我在我的Post模型中调用了tags()

return $this->hasManyThrough('Post', 'Tag', 'post_id', 'tag_id');

不起作用.

1 个回答
  • 不.您展示的是ManyToMany关系:http: //laravel.com/docs/eloquent#relationships

    你要做的就是这样(在Post模型中):

    return $this->belongsToMany('Tag', 'post_tag', 'post_id', 'tag_id');
    

    这种hasManyThrough关系意味着一种捷径.鉴于此模型:

    user
      name
    
    post
      user_id
      body
    
    tag
      name
    
    post_tag
      post_id
      tag_id
    

    当你想要查看用户的所有标签(给定用户是许多帖子的所有者)时它会派上用场,所以你会做这样的事情(在用户模型中):

    return $this->hasManyThrough('Post', 'Tag', 'post_id', 'tag_id');
    

    希望这对你有所帮助!

    2023-02-07 14:07 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有