【问题标题】:How to hide the per page options from laravel nova resource filter dropdown?如何从 laravel nova 资源过滤器下拉菜单中隐藏每页选项?
【发布时间】:2020-06-21 10:12:38
【问题描述】:

我需要对特定资源隐藏每页过滤器选项。我可以更改每页过滤器选项,但我不知道如何隐藏它,然后在 laravel nova 中添加每页 100 行的默认分页。

在 nova 过滤器下拉列表中,我们得到一个按页面命名的选项,其中默认选项为 [25,50,100]。

虽然我们可以轻松地将每页选项更改为任意数字,但是我们如何将整个每页​​选项隐藏在过滤器中,然后添加每页 100 行的默认数据,这将是不可更改的?

这意味着我需要在资源上每页加载 100 行,并且不想在 laravel nova 的资源表的过滤器部分中显示每页的选项。这样用户就无法更改每页数据选项并获得默认的每页 100 行。

为了更清楚地说明,假设我在仪表板上有一个帖子资源,并且我在过滤器部分有一个选项来确定我想在每页上显示多少个帖子行。我需要这里的定制。我也想从过滤器部分删除每页选项,以便用户无法更改它,然后我想要一个默认的每页 100 行值。平均每页用户将在帖子表上看到 100 个帖子列表。

【问题讨论】:

  • 您是否尝试覆盖该资源上的$perPageOptions 属性? public static $perPageOptions = [100];。理论上,如果有一个选项设置正确,它应该隐藏?
  • 是的,我试过了。并且也尝试了 perPageOptions() 静态函数。但它只从下拉列表中消除了另一个选项,但下拉列表仍然存在一个值为 100,但我需要完全隐藏它。谢谢

标签: php laravel laravel-nova


【解决方案1】:

如果您深入研究源代码。遗憾的是,没有隐藏 perPage 选择器的选项,它是硬编码的。所以唯一的方法是覆盖FilterMenu 组件。

  • create custom tool
  • /nova/resources/components/FilterMenu.vue 的内容复制到您的组件中
  • 覆盖为:
Nova.booting((Vue, router, store) => {
   Vue.component('filter-menu', require('./path/CustomFilterMenu'))
})

【讨论】:

    猜你喜欢
    • 2015-09-19
    • 1970-01-01
    • 2014-07-09
    • 2018-10-14
    • 1970-01-01
    • 2014-10-20
    • 1970-01-01
    • 2020-07-24
    • 1970-01-01
    相关资源
    最近更新 更多