Adonis JS - 访问模型的自定义方法

Adonis JS - Access Model's custom method

我向模型添加了一个名为 customMethod 的自定义方法,如下所示:

class Prize extends Model {

  customMethod(){

    return 'test'

  }

}

当我使用 find 通过主键获取奖品时,我可以调用此方法没问题

    const prize = await Prize.find(1);

    return prize.customMethod();
    //returns 'test'

但是如果我通过关系或通过字段查询以任何其他方式获得奖品,我将无法访问此方法。

   const countrysPrizes = await country.prizes().fetch();

    for (const key in countrysPrizes) {
      if (countrysPrizes.hasOwnProperty(key)) {
        const prize = countrysPrizes[key];

        return prize.customMethod();
        //returns 500 - prize.customMethod is not a function
      }
    }

如何在遍历多个对象时访问此方法?

您需要使用 <fetched_object>.rows 因为 VanillaSerializer

示例代码:

  const user = await User.find(1);
  const posts = await user.posts().fetch();

  posts.rows.forEach(post=> { // use .rows
    console.info(post.customMethod()); // Your custom method
  });

我在使用基本 foreach 循环时遇到了问题。所以我用了.foreach()

fetch() 的输出示例: