Я использую React-Admin, чтобы создать небольшое приложение для проверки инструментов и того, кто их позаимствовал.
У меня есть таблица инструментов с идентификатором, кодом, именем, состоянием и т. Д.
с использованием Список для его визуализации.
<List {...props} filters={<ToolFilter />}>
<Datagrid rowClick="edit">
<TextField source="id" />
<TextField source="code" label="Kód" />
<TextField source="name" />
<TextField source="state" />
<NumberField source="free" />
<DateField source="add_time" />
<EditButton />
</Datagrid>
</List>
Чем у меня есть таблица B_tools, которая содержит данные заимствованных инструментов. у него есть id, userId, toolId, durationOfBorrow
Что я хочу сделать, это добавить столбец в список инструментов, чтобы SUMs durationOfBorrow из таблицы B_tool для каждого инструмента и отображать его в списке инструментов.
например, если у меня есть таблица B_tool:
id userId toolId durationOfBorrow
1 1 1 7
2 1 1 7
3 2 2 2
4 1 2 2
Мне нужен список инструментов, чтобы он выглядел следующим образом:
id code name state durationOfBorrow
1 123 Drill 1 14 (7+7)
2 456 Wrench 1 4 (2+2)
Я попытался использовать Запрос API с выборкой из React-Admin документация. Я подготовил маршрут app.get ('/ api / tools / loancount: id', toolController.borrowCount); эта сумма возвращает сумму столбца:
borrowCount(req, res) {
//console.log(req);
const filtry = JSON.parse(req.query.filter);
console.log(filtry);
const options = {
attributes: [
[sequelize.fn('sum', sequelize.col('time')), 'total_time'],
],
raw: true,
where: ({
}),
order:
[]
,
};
if (typeof filtry.id !== "undefined") {
options.where.id = filtry.id;
}
return B_tool
.findAll(options)
//console.log(user);
//res.status(201).send(test);
.then(b_tool => {
//console.log(user.rows);
res.status(200).send(b_tool);
})
.catch(error => res.status(400).send(error));
},
Но не знаю, как реализовать это, чтобы отобразить его в списке инструментов.