我正在使用laravel 5.7.19。
在我的r.db("identitydb").table("connections")
.filter(r.row("origin").eq("person").or(r.row("type").eq("human")))
控制器中,我从数据库中查询数据并将其移交给视图:
TableController.php
在我的public function index()
{
$c = DB::table('tick_data')
->select('*')
->join('basis', 'basis.Id', '=', 'tick_data.b_id')
->whereRaw('tick_data.id IN( SELECT MAX(tick_data.id) FROM tick_data GROUP BY tick_data.exchange_timestamp)')
->get();
return view('datatable')->with('coins', $c);
}
文件中,我正在输出数据:
table.blade.php
如您所见,我主要使用 @foreach ($coins as $key=>$c)
<tr>
<td>{{ ++$key }}</td>
<td>{{ $c->pair }}</td>
<td>{{ number_format($c->last_price, 8) }}</td>
<td>{{ number_format($c->price_change_percentage, 8) }}</td>
<td>{{ number_format($c->price_change, 8) }}</td>
<td>{{ number_format($c->high_price, 8) }}</td>
<td>{{ number_format($c->low_price, 8) }}</td>
<td>{{ $c->base_volume }}</td>
<td>{{ $c->name }}</td>
</tr>
@endforeach
函数来格式化我的值。
但是,number_format()
的形式为base_volume
或467703.0000000000
,我想用10831.13202978000
将其更改为简写形式。
刀片中是否有任何功能可以做到这一点?预格式化数字的好方法是什么?
感谢您的答复!
答案 0 :(得分:1)
我不知道任何刀片功能都可以做到这一点。但是,您可以为此使用PHP Humanizer软件包。例如,从他们的文档中:
use Coduo\PHPHumanizer\NumberHumanizer;
NumberHumanizer::metricSuffix(-1); // "-1"
NumberHumanizer::metricSuffix(0); // "0"
NumberHumanizer::metricSuffix(1); // "1"
NumberHumanizer::metricSuffix(101); // "101"
NumberHumanizer::metricSuffix(1000); // "1k"
NumberHumanizer::metricSuffix(1240); // "1.2k"
NumberHumanizer::metricSuffix(1240000); // "1.24M"
NumberHumanizer::metricSuffix(3500000); // "3.5M"
关于软件包的好处是,它还支持多种语言环境。
编辑:here中还讨论了其他替代解决方案。如果您只需要缩短数字,这可能是一个更好的选择。