Node.js Adonis.js关系

Node.js Adonis.js关系,node.js,orm,adonis.js,Node.js,Orm,Adonis.js,我有以下表格:公司、分支机构、用户、用户和分支机构 每个分支机构都链接到一家公司。用户可以链接到在users\u branchs透视表中捕获的分支 在公司的索引和显示方法中我只需要显示为用户有权访问的公司,也就是说,仅显示为链接到其注册的任何分支机构的公司。你能帮我吗 我今天的内容是非常基本的,列出了所有内容: async index () { const companies = await Company.all() return companies } async show ({

我有以下表格:公司、分支机构、用户、用户和分支机构

每个分支机构都链接到一家公司。用户可以链接到在users\u branchs透视表中捕获的分支

公司的索引和显示方法中我只需要显示为用户有权访问的公司,也就是说,仅显示为链接到其注册的任何分支机构的公司。你能帮我吗

我今天的内容是非常基本的,列出了所有内容:

async index () {
  const companies = await Company.all()
  return companies
}

async show ({ params }) {
  const company = await Company.findOrFail(params.id)

  await company.load('branches')

  return company
}
我尝试了另外两种方法:

async index ({ auth }) {
  const { user } = auth

  return user.branches().company().fetch()
}

但它不起作用

这可能会起作用,(您可能还需要将
'user\u id'
更改为
'id'
,如果出现任何错误,还需要启用调试并观察查询

const companys=wait Company.query()
.whereHas('branchs',branchesQuery=>{
branchesQuery.whereHas('users',uq=>{
uq.where('user_id',1)
})
})
.fetch()
async index () {
  const companies = await Company.query()
    .whereHas('branches', branchesQuery => {
      branchesQuery.wherePivot('user_id', 1)
    })
    .fetch()

  return companies
}