【问题标题】:How to iterate an array cleanly PHP如何干净地迭代数组PHP
【发布时间】:2018-06-20 13:45:09
【问题描述】:

您好,我很难迭代我的数组。我不知道如何使用简单的foreachforeach$key。我尝试使用key,但出现以下错误:

非法字符串偏移 'payroll_employee_company_id'(查看:/var/www/html/digimahouse/resources/views/member/payrollreport/loan_summary_table.blade.php)

如何才能成功迭代?

这是我的数组

这是我的foreach

 @foreach($totals as $key => $total)
      @if($total['payroll_employee_company_id'] == $comid->payroll_company_id)
        <tr class="total">
          <td class="text-center"><strong>TOTAL</strong></td>
          <td class="text-center"></td>
          <td class="text-center"></td>
          <td class="text-center">{{$total['loan_total']}}</td>
          <td class="text-center">{{$total['total_total_payment']}}</td>
          <td class="text-center">{{$total['total_remaining_balance']}}</td>
          <td class="text-center"></td>
        </tr>
    @endif
@endforeach

这是我的控制器

public function loan_summary()
{
    $data["page"] = "Loan Summary";
    $data["_loan_data"] = PayrollDeductionController::get_deduction($this->shop_id());
    $data["_company"] = Payroll::company_heirarchy(Self::shop_id());//Tbl_payroll_company::where("shop_id", Self::shop_id())->where('payroll_parent_company_id', 0)->get();
    $data['totals'] = $this->get_totals_loan_summary($data);

    return view("member.payrollreport.loan_summary", $data);
}

【问题讨论】:

  • $totals 来自哪里?发布它...
  • @B001 你的意思是 BTW:摆脱使用 @ ??
  • 这是一个 laravel 语法。在控制器中。
  • @AbdullaNilam 完全是我的错...
  • 你在循环播放哪一个?数组内的总计或包含页面、_company、_load_data 和总计的整个数组?

标签: php laravel


【解决方案1】:

你说过图片是{{ dd($totals) }} 的结果。在这种情况下,请执行以下操作:

@foreach($totals['totals'] as $key => $total)
      @if($total['payroll_employee_company_id'] == $comid->payroll_company_id)
        <tr class="total">
          <td class="text-center"><strong>TOTAL</strong></td>
          <td class="text-center"></td>
          <td class="text-center"></td>
          <td class="text-center">{{$total['loan_total']}}</td>
          <td class="text-center">{{$total['total_total_payment']}}</td>
          <td class="text-center">{{$total['total_remaining_balance']}}</td>
          <td class="text-center"></td>
        </tr>
    @endif
@endforeach

【讨论】:

  • 您能解释一下为什么它有效吗?我想了解我的错误。
  • @nethkennnnn 你只需嵌套两次。您还可以执行类似array_marge($data, $this-&gt;get_totals_loan_summary($data)); 的操作,以使您之前的代码在视图中工作。
【解决方案2】:

你的 foreach 不在正确的数组中

 @foreach($data['totals'] as $key => $total)
  @if($total['payroll_employee_company_id'] == $comid->payroll_company_id)
    <tr class="total">
      <td class="text-center"><strong>TOTAL</strong></td>
      <td class="text-center"></td>
      <td class="text-center"></td>
      <td class="text-center">{{$total['loan_total']}}</td>
      <td class="text-center">{{$total['total_total_payment']}}</td>
      <td class="text-center">{{$total['total_remaining_balance']}}</td>
      <td class="text-center"></td>
    </tr>
@endif

@endforeach

【讨论】:

  • 他实际上返回了$totals 变量,而不是$data。这就是 view() 助手的工作原理。
猜你喜欢
  • 2014-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-06
  • 1970-01-01
  • 1970-01-01
  • 2017-06-12
相关资源
最近更新 更多