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()
的输出示例:
我向模型添加了一个名为 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()