【问题标题】:Laravel Nova: Add row numbers (NOT ID) to the Laravel Nova resourcesLaravel Nova:向 Laravel Nova 资源添加行号(非 ID)
【发布时间】:2020-09-26 11:24:08
【问题描述】:

我想知道有没有办法在资源页面上的ID 字段旁边有一个行号(NOT ID)?

【问题讨论】:

    标签: php laravel laravel-nova


    【解决方案1】:

    这是我根据Origami1024 's answer找到的解决方案,他/她的回答只支持首页,不考虑分页。这是基于他/她的回答的解决方案:

    public function fields(Request $request)
    {
            if (!$request->count) {
                $request->count = 0;
            }
            return [
                Text::make('#', function () use ($request) {
                    $request->count += 1;
    
                    $rowNumber = $request->page == 1 ? $request->count : $request->count + ($request->perPage * ($request->page - 1));
                    return $rowNumber;
                })->onlyOnIndex(),
                ID::make()->sortable(true),
                Text::make('name'),
                ...
            ];
    
    
    }
    

    【讨论】:

    • 对分页进行了很好的改进。但是如果不将计数除以 2,它对您有用吗?我不明白为什么 Nova 在我的应用程序中运行了两次 fields 方法
    • 是的,对我有用,不除以 2。看起来很奇怪,你有没有机会拥有两个同名的资源?
    【解决方案2】:

    一个 hacky 解决方案是将计数器变量存储在 $request 对象上,并在 Text 字段中通过闭包递增/返回计数器值。

    public function fields(Request $request)
    {
        if (!$request->count) {
            $request->count = 0;
        }
        return [
            Text::make('#', function () use ($request) {
                $request->count += 1;
                return $request->count;
            }),
    
            ID::make()->sortable(),
            Text::make('Name')->sortable()->rules('required', 'max:255'),
            ...
        ];
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-25
      • 2019-06-19
      • 2021-03-05
      • 2023-03-19
      • 2021-02-01
      • 2019-04-21
      • 1970-01-01
      相关资源
      最近更新 更多