簡體   English   中英

在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();
    }

其中顯示以下輸出。

  • 對於22 => $22
  • 總和為3120 => $3.10k

我只需要顯示$22$3120而無需任何格式。 我試圖覆蓋聚合函數,但是它仍然不能提供正確的輸出格式。

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);
    }

有人可以在這里指點嗎?

對於未來的讀者。

從Nova 1.3.1我們可以使用Numeral.js格式來格式化Trend/Value指標中的Trend/Value

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

上面的代碼片段會將要顯示的值格式化為兩位小數。

從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 ''
},

它是不可配置的。

解決方法

您可以編輯上述文件,僅返回非格式值。 然后運行npm run prod以構建並運行php artisan nova:publish命令以復制更新的文件。

注意 -您的更改將在以后更新Nova版本時被覆蓋。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM