在 Laravel Nova Value 指标中显示值
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
=> </code> </li>
<li>总和 <code>3120
=> .10k
我只需要显示 </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')
以上代码段会将要显示的值格式化为两位小数。
我需要显示模型 Foo
的 price
列的总和。现在我可以用这个来做。
public function calculate(Request $request)
{
return $this
->sum($request, Contribution::class, 'contribution_amount')
->dollars();
}
显示以下输出。
- 总和
22
=></code> </li> <li>总和 <code>3120
=>.10k
我只需要显示 </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')
以上代码段会将要显示的值格式化为两位小数。