Laravel Nova:向 Laravel Nova 资源添加行号(不是 ID)

Laravel Nova: Add row numbers (NOT ID) to the Laravel Nova resources

我想知道有什么方法可以在资源页面的 ID 字段旁边添加行号(不是 ID)吗?

一个 hacky 解决方案是将计数器变量存储在 $request 对象上,increment/return 计数器值在文本字段中关闭。

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'),
        ...
    ];
}

这里是我根据找到的解决方案,his/her答案只支持首页,不考虑分页。这是基于 his/her 答案的解决方案:

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'),
            ...
        ];


}