[英]Displaying the value in a Laravel Nova Value metric
我需要顯示模型Foo
的price
列的總和。 現在,我可以做到這一點。
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.