Laravel Nova - 重新加载资源的索引视图

Posted

技术标签:

【中文标题】Laravel Nova - 重新加载资源的索引视图【英文标题】:Laravel Nova - Reload index view of a resource 【发布时间】:2019-02-14 03:39:00 【问题描述】:

我正在开发我的第一个 Nova 领域。它是一个索引字段,包含一个发送 Axios 请求的按钮,当返回响应时,我需要重新加载索引视图。

现在我得到了这个:

this.$router.go(this.$router.currentRoute);

问题在于它刷新了整个页面(硬刷新,比如按下 Cmd+R 时)。我只想重新加载当前路由(即资源的索引路由)。

我也试过这个:

            this.$router.push(
                name: 'index',
                params: 
                    resourceName: this.resourceName,
                ,
            );

但由于我推的是同一条路线,它什么也没做。

有什么想法吗?

谢谢,丹尼尔。

【问题讨论】:

为什么需要刷新页面?尝试将内容绑定到给定的数据对象属性 我也在寻找类似的解决方案。你有没有发现比重新加载页面更好的东西?我看到该组件在删除索引中的行时收到“更改”事件。所以我想知道我们如何以编程方式将该事件触发到特定组件。 【参考方案1】:

你可以试试这样的

let currentFilters = _.cloneDeep(this.$store.state[`$this.resourceName`]['filters']);
await this.$store.commit(`$this.resourceName/storeFilters`, );
await this.$store.commit(`$this.resourceName/storeFilters`, currentFilters);

此代码会将当前应用的过滤器重置为空对象,然后再次请求旧过滤器,从而导致资源索引更新。但要小心 - 此方法向服务器发出两个请求。

我现在在尝试实现自定义弹出组件时面临同样的问题 - 但这是我在 Nova vuex 商店中实现的全部。

实施思路取自https://github.com/tanmuhittin/nova-reload-resources/blob/f27da9507a97696b7aca0e9bd7e5afd3001f0891/resources/js/components/Card.vue#L21

【讨论】:

以上是关于Laravel Nova - 重新加载资源的索引视图的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法在 Laravel 中为 Nova 资源显式定义策略?

php 在Laravel Nova资源中覆盖标签

php 具有自定义访问器的Laravel Nova用户资源

Laravel:使用 unset() 后无法在急切加载中重新索引集合的数组

在 Laravel Nova 中为不同的资源使用一张表

用于 Laravel Nova 中同一模型上的两个资源字段的 relatableQuery()