在 Laravel Nova Value 指标中显示值

Displaying the value in a Laravel Nova Value metric

我需要显示模型 Fooprice 列的总和。现在我可以用这个来做。

    public function calculate(Request $request)
    {

        return $this
            ->sum($request, Contribution::class, 'contribution_amount')
            ->dollars();
    }

显示以下输出。

我只需要显示 </code>、<code>20,无需任何格式。我试图覆盖聚合函数,但它仍然没有给我正确的输出格式。

protected function aggregate($request, $model, $function, $column = null, $dateColumn = null)
    {
        $query = $model instanceof Builder ? $model : (new $model)->newQuery();

        $column = $column ?? $query->getModel()->getQualifiedKeyName();

        $previousValue = with(clone $query)->whereBetween(
            $dateColumn ?? $query->getModel()->getCreatedAtColumn(), $this->previousRange($request->range)
        )->{$function}($column);

        return $this->result(
            with(clone $query)->whereBetween(
                $dateColumn ?? $query->getModel()->getCreatedAtColumn(), $this->currentRange($request->range)
            )->{$function}($column)
        )->previous($previousValue);
    }

谁能指点一下吗?

从 v1.2.0 开始

格式出现在 nova/resources/js/components/Metrics/Base/ValueMetric.vue

formattedValue() {
    if (!this.isNullValue) {
        const numeralValue = numeral(this.value)

        return numeralValue.value() > 1000
            ? this.prefix + numeralValue.format('(0.00a)')
            : this.prefix + this.value
    }

    return ''
},

不可配置。

解决方法

您可以将上述文件编辑为 return 非格式值。然后运行npm run prod构建&运行php artisan nova:publish命令复制更新的文件。

注意 - 将来更新 Nova 版本时,您的更改将被覆盖。

对于未来的读者..

从 Nova 1.3.1 开始,我们可以使用 Numeral.js 格式化来格式化 Trend/Value 指标中的值。

return $this
            ->result($val)
            ->dollars()
            ->format('0,0.00')

以上代码段会将要显示的值格式化为两位小数。