【问题标题】:Adonis.js populate all with related tables dataAdonis.js 用相关的表数据填充所有
【发布时间】:2018-12-25 08:52:40
【问题描述】:

我用的是MySql,所有的关系在models和schema中都已经正确配置了:

我有 3 张桌子: 1. 帖子(主要) 2.分类(1个帖子有1只猫,1个猫属于很多帖子) 3.标签(多对多)

类别和标签都有与帖子表中的“id”列相关的“post_id”列。

获取所有相关数据(帖子数据+帖子类别数据+帖子标签数据)的最佳方法是什么? (现在我知道我可以得到类似的东西:

const post = await Post.find(params.id)
const category = await post.categories().fetch()
etc for every related table

我相信一定有更好的方法。

我希望结果是:

{ 发布数据 - 名称、文本 ...

“类别”:{ 类别数据 - 名称、文本 ... },

“标签”:[ { tag1 数据 }, { tag2 数据 }

] }

【问题讨论】:

    标签: javascript mysql knex.js adonis.js


    【解决方案1】:
     const wantedData = await Post.query().where('id', params.id).with('categories').with('tags').fetch()
    

    【讨论】:

      【解决方案2】:

      是的,有更好的方法来做到这一点。

      最新的 Adonis js 具有查询生成器的功能。您可以使用它执行几乎所有的 SQL 查询。例如

      #select

      Database
        .from('users')
        .select('id', 'username', 'email')
      
      

      因此,您可以根据需要执行许多查询。以下链接对您非常有用。 Query builder Documentation

      【讨论】:

        猜你喜欢
        • 2014-06-13
        • 2017-09-26
        • 1970-01-01
        • 1970-01-01
        • 2013-03-14
        • 1970-01-01
        • 2021-03-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多