Как перезагрузить 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);
  }
},

Другие вопросы по тегам