【发布时间】:2016-07-18 21:47:57
【问题描述】:
我有一个奇怪的问题,我看不到任何明显的解决方案。
我正在构建过去 30 天的交易总额的 jQuery 图表,但我没有得到正确的输出。以下是相关刀片模板代码:
@for ($i = 29; $i >= 1; $i--)
{y: '{{ \Carbon\Carbon::now()->subDays($i)->toDateString() }}', item1: '{{ $transactions->whereDate('created_at', '=', \Carbon\Carbon::now()->subDays($i)->toDateString())->where('status', 'C')->sum('amount') }}'},
@endfor
{y: '{{ \Carbon\Carbon::now()->toDateString() }}', item1: '{{ $transactions->where('created_at', '>=', \Carbon\Carbon::now()->toDateString())->where('status', 'C')->sum('amount') }}'}
对于我的虚拟数据,当 $i=3 时它应该返回 '10.00' 而其他所有东西都应该返回 '0'。
注意:如果我将 FIRST 输出设为“3 天前”,它会返回预期值。示例:
{y: '{{ \Carbon\Carbon::now()->subDays(3)->toDateString() }}', item1: '{{ $transactions->whereDate('created_at', '=', \Carbon\Carbon::now()->subDays(3)->toDateString())->where('status', 'C')->sum('amount') }}'},
@for ($i = 29; $i >= 1; $i--)
{y: '{{ \Carbon\Carbon::now()->subDays($i)->toDateString() }}', item1: '{{ $transactions->whereDate('created_at', '=', \Carbon\Carbon::now()->subDays($i)->toDateString())->where('status', 'C')->sum('amount') }}'},
@endfor
{y: '{{ \Carbon\Carbon::now()->toDateString() }}', item1: '{{ $transactions->where('created_at', '>=', \Carbon\Carbon::now()->toDateString())->where('status', 'C')->sum('amount') }}'}
另外,如果我将任何值硬编码到图表中,它可以正常工作,因此 应该 排除任何 jQuery 问题。所以从本质上讲,似乎只有我第一次使用这个调用它才有效。
我假设解决方案是清理 Carbon/collection 调用的数量(因为总共有 60 个),但我不太确定从哪里开始。我正在从我的控制器传递一个集合作为“事务”。
结果:
{y: '2016-06-18', item1: '0'},
...
{y: '2016-07-15', item1: '0'},
{y: '2016-07-16', item1: '0'},
{y: '2016-07-17', item1: '0'},
{y: '2016-07-18', item1: '0'}
预期结果:
{y: '2016-06-18', item1: '0'},
...
{y: '2016-07-15', item1: '10.00'},
{y: '2016-07-16', item1: '0'},
{y: '2016-07-17', item1: '0'},
{y: '2016-07-18', item1: '0'}
【问题讨论】:
标签: php laravel eloquent blade php-carbon