首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拉勒维尔-通过变压器记录一个列的运行记录。

拉勒维尔-通过变压器记录一个列的运行记录。
EN

Stack Overflow用户
提问于 2015-12-15 17:52:17
回答 1查看 194关注 0票数 0

所以我有一个Contribution模型。我有一个控制器,它把所有的捐款都拉进来,然后把它们送到变压器上,如下所示:

我的财务主任:

代码语言:javascript
复制
public function showContributions (Request $request, $memberId)
{
    $perPage = $request->input('per_page', 15);
    $contribution = parent::getRepo('Contribution');

    $contributions = Cache::tags(['contributions'])->remember("contributions.$memberId.2", 60, function() use ($perPage, $memberId, $contribution){
        return $contribution->where('vip_id', $memberId)->where('fund_id', 2)->paginate($perPage);
    });

    $transformedData = $this->fractal->paginatedCollection($contributions, new ContributionTransformer(), 'contributions');
    return $this->sendResponse($transformedData['contributions'], $transformedData['meta']);
}

我的变压器:

代码语言:javascript
复制
    public function transform(Contribution $contribution)
    {
        setlocale(LC_MONETARY, 'en_US.UTF-8'); // Set so that money_format uses the dollar sign instead of USD. Consider moving to bootstrap
        $report = $contribution->report;
        $employer = $report->employer;
        $employerHours = $contribution->employerHours;

        $contributionLocal = $contribution->local->local_code ?? '';
        $employerLocal = $employerHours->local->local_code ?? '';

        $reciprocalLocal = $contributionLocal === $employerLocal ? '0000' : $employerLocal;

        $response = [
            'id' => $contribution->member_hours_id,
            'report_number' => $contribution->report_number_id,
            'employer_code' => $employer->employer_code,
            'employer_name' => $employer->employer_name,
            'worked_date' => $report->ending_worked_date,
            'received_date' => $report->receipt_date,
            'report_local' =>  $contributionLocal,
            'reciprocal_local' => $reciprocalLocal,
            'unit_type' =>  $contribution->unitType->code_description,
            'units_worked' => $contribution->units_worked,
            'credited_units' => $contribution->units_credited,
            'rate' => $contribution->unit_multiplier,
            'reciprocal_rate' => $employerHours->reciprocal_multiplier,
            'calculated_amount' => money_format('%.2n', $contribution->calculated_amount),
            'received_amount' => money_format('%.2n', $contribution->actual_amount),
            'owed_amount' => money_format('%.2n', $contribution->owed_amount),
        ];

        return $response;
    }

贡献表中的一个字段是sub_hours。他们要我做的是记录下那个区域的情况。在后面的每一行中,将该计数作为hours_to_date返回。所以在第一行中,sub_hours是32,在第二行是60。在第一行中,hours_to_date是32,第二行是92,第三行是92 + sub_hours of row 3等等。我似乎不知道应该如何跟踪这个运行计数,并允许转换器访问它。任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-15 18:42:17

您能在转换器类上创建属性吗?我没有用过变压器,但是

代码语言:javascript
复制
class ContributionTransformer{
    private $tally;
    function __construct(){
        $this->tally = 0;
    }
    public function transform(Contribution $contribution){
        ...
            $this->tally += $contribution->sub_hours;
        ...
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34296124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档