Как перезагрузить ResourceTable программно в Laravel Nova?
У меня есть собственный инструмент ресурсов (инструмент ввода в книгу), который изменяет значения ресурса, а также вставляет дополнительные строки в связанные ресурсы.
"Аккаунт" - это основные ресурсы. "AccountTransaction" и "AccountLog" оба записываются при создании записи в бухгалтерской книге. И через события значение account.balance обновляется.
После успешной публикации записи в книгу (с использованием Nova.request) в ресурсе-инструменте я бы хотел, чтобы новое значение баланса обновлялось на панели сведений о счете, а также чтобы были видны новые записи в AccountTransaction и AccountLog.
Простым способом было бы просто перезагрузить страницу, но я ищу более элегантное решение.
Можно ли попросить эти компоненты обновить себя из моего компонента resource-tool vue.js?
0 ответов
Недавно была такая же проблема, когда я ссылался на этот блок кода
Нова имеетvuex
хранит модули, где они определили storeFilters
. Назначение фильтров пустому объекту с последующим их запросом "перезагружает" ресурсы. Я не проводил дополнительных исследований по этому вопросу, но если вы ищете то, что, я думаю, вы ищете, это должно быть то, что вам нужно.
async reloadResources() {
this.resourceName = this.$router.currentRoute.params.resourceName || this.$router.currentRoute.name;
if (this.resourceName) {
let filters_backup = _.cloneDeep(this.$store.getters[`${this.resourceName}/filters`]);
let filters_to_change = _.cloneDeep(filters_backup);
filters_to_change.push({});
await this.$store.commit(`${this.resourceName}/storeFilters`, filters_to_change);
await this.$store.commit(`${this.resourceName}/storeFilters`, filters_backup);
}
},