2016-12-04 23 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

對不起,你的角色是什麼意思? –