mirror of
https://github.com/nocobase/nocobase
synced 2024-11-15 05:57:53 +00:00
fix: get association model by field target
This commit is contained in:
parent
76acd162e4
commit
32774657d7
@ -36,18 +36,20 @@ export async function list(ctx: Context, next: Next) {
|
||||
resourceName,
|
||||
resourceField,
|
||||
} = ctx.action.params;
|
||||
const Model = ctx.db.getModel(resourceName);
|
||||
const options = Model.parseApiJson({
|
||||
sort,
|
||||
page,
|
||||
perPage,
|
||||
filter,
|
||||
fields,
|
||||
context: ctx,
|
||||
});
|
||||
let data = {};
|
||||
let options: any = {};
|
||||
let Model;
|
||||
if (associated && resourceField) {
|
||||
const AssociatedModel = ctx.db.getModel(associatedName);
|
||||
Model = ctx.db.getModel(resourceField.options.target);
|
||||
options = Model.parseApiJson({
|
||||
sort,
|
||||
page,
|
||||
perPage,
|
||||
filter,
|
||||
fields,
|
||||
context: ctx,
|
||||
});
|
||||
if (!(associated instanceof AssociatedModel)) {
|
||||
throw new Error(`${associatedName} associated model invalid`);
|
||||
}
|
||||
@ -77,6 +79,15 @@ export async function list(ctx: Context, next: Next) {
|
||||
count,
|
||||
};
|
||||
} else {
|
||||
Model = ctx.db.getModel(resourceName);
|
||||
options = Model.parseApiJson({
|
||||
sort,
|
||||
page,
|
||||
perPage,
|
||||
filter,
|
||||
fields,
|
||||
context: ctx,
|
||||
});
|
||||
data = await Model.scope(options.scopes||[]).findAndCountAll({
|
||||
...options,
|
||||
// @ts-ignore hooks 里添加 context
|
||||
|
Loading…
Reference in New Issue
Block a user