2016-12-04 35 views
0

我想使用DOMPDF下载我的HTML报告为PDF文件,但我得到这个错误:未定义的属性:Symfony的分量 HttpFoundation ResponseHeaderBag(使用下载报告DOMPDF)

Undefined property: Symfony\Component\HttpFoundation\ResponseHeaderBag::$first_name

这里的到目前为止,我的控制器代码:

public function monthlypayrollProcess(Request $request) 
{ 
    $monthlypayrolls = Driver::join('driver_payables', 'driver_payables.driver_id', '=', 'drivers.id') 
          ->join('driver_payable_details', 'driver_payable_details.driver_payable_id', '=', 'driver_payables.id') 
          ->select(
           'drivers.id', 
           'drivers.first_name', 
           'drivers.last_name', 
           'drivers.nric', 
           'drivers.join_date', 
           'drivers.basic_salary', 
           'drivers.uniform_size', 
           'driver_payables.total_working_hours', 
           'driver_payables.take_home_pay' 
          ) 
          ->where('driver_payables.payroll_period_id', $request->payroll_period_id)->get(); 

    if ($monthlypayrolls->isEmpty()) { 
     return $this->sendErrorResponse($request, 'No Data'); 
    } 
    $view = view('reporting.monthly_payroll.detail')->with(compact('monthlypayrolls')); 
    return parent::render($view, null, null); 
} 

public function downloadMonthlyPayrollReport(Request $request) 
{ 
    $monthlypayrolls = $this->monthlypayrollProcess($request); 
    $isPdf = true; 
    $view = 'reporting.monthly_payroll.pdfview'; 
    $pdf = PDF::loadView($view, compact('monthlypayrolls', 'isPdf'))->setPaper('A4', 'landscape'); 
    return $pdf->stream(); 
} 

,这里是我的PDF查看刀片到目前为止的代码:

<div class="table-responsive text-center"> 
<table class="table table-hover" id="datatable" style="width: 100%"> 
    <thead> 
     <tr> 
      <th class="text-center">Driver Name</th> 
      <th class="text-center">NRIC</th> 
      <th class="text-center">Employment Type</th> 
      <th class="text-center">Hired Date</th> 
      <th class="text-center">Basic Salary</th> 
      <th class="text-center">Uniform</th> 
      <th class="text-center">Total Working Hours</th> 
      <th class="text-center">Take Home Pay</th>        
     </tr> 
    </thead> 
    <tbody> 
     @foreach($monthlypayrolls as $monthlypayroll) 
      <tr> 
       <td>{{$monthlypayroll->first_name }} {{ $monthlypayroll->last_name}}</td> 
       <td>{{$monthlypayroll->nric}}</td> 
       <td>{!! DriverEmployedType::getString($monthlypayroll->employed_type) !!}</td> 
       <td>{{$monthlypayroll->join_date}}</td> 
       <td>{{$monthlypayroll->basic_salary }}</td> 
       <td>{{$monthlypayroll->uniform_size}} {{$monthlypayroll->uniform_quantity}}</td> 
       <td>{{$monthlypayroll->total_working_hours}}</td> 
       <td>{{$monthlypayroll->take_home_pay}}</td> 
      </tr> 
     @endforeach 
    </tbody> 
</table> 
</div> 

有什么想法?

回答

0

monthlypayrollProcess()方法返回一个响应视图,那么你就在你看来

<td>{{$monthlypayroll->first_name }} {{ $monthlypayroll->last_name}}</td> 

出错了逻辑分配给另一个变量

$monthlypayrolls = $this->monthlypayrollProcess($request); 

最后,该方法也许应该返回对象不是视图。该方法应该是这样的:

public function monthlypayrollProcess(Request $request) 
{ 
    $monthlypayrolls = Driver::join('driver_payables', 'driver_payables.driver_id', '=', 'drivers.id') 
          ->join('driver_payable_details', 'driver_payable_details.driver_payable_id', '=', 'driver_payables.id') 
          ->select(
           'drivers.id', 
           'drivers.first_name', 
           'drivers.last_name', 
           'drivers.nric', 
           'drivers.join_date', 
           'drivers.basic_salary', 
           'drivers.uniform_size', 
           'driver_payables.total_working_hours', 
           'driver_payables.take_home_pay' 
          ) 
          ->where('driver_payables.payroll_period_id', $request->payroll_period_id)->get(); 

    if ($monthlypayrolls->isEmpty()) { 
     return $this->sendErrorResponse($request, 'No Data'); 
    } 
    return $monthlypayrolls; 
} 
+0

对不起,我应该改变什么。 –

+0

这个函数'monthlypayrollProcess()'的作用是什么? –

+0

对不起,你的角色是什么意思? –