2017-12-04 14 views
1

이보기에서 pdf 보고서를 생성하기위한 html보기 페이지를 만들었으며 dompdf 라이브러리도 설치했습니다.이보기에서 데이터베이스 테이블의 데이터를로드하고 다음과 같이 하이퍼 링크 이름을 만듭니다. pdf를 다운로드하십시오. 하지만이 링크를 클릭하면 정의되지 않은 변수가 표시됩니다. dsale 오류.dompdf가 laravel에서 작동하지 않습니다

여기 내 컨트롤러 방법.

//pass data to view 
public function dsreport($id,$fromdate,$todate) 
{ 
    $dsale=DB::table('directsales') 
      ->join('clients','directsales.client_id','=','clients.id') 
      ->join('products','directsales.product_id','=','products.id') 
      ->select('clients.client_name','clients.addr','directsales.*','products.name') 
      ->where('directsales.client_id','=',$id) 
      ->whereBetween('directsales.issue_date',[$fromdate,$todate]) 
      ->distinct() 
      ->paginate(3); 
      //->get(); 
     $sumt=DB::table('directsales') 
      ->where('directsales.client_id','=',$id) 
      ->sum('directsales.total'); 

    return view('reports.directsalereport',compact(['dsale','sumt'])); 
} 

//generate pdf 
public function dsalepdf() 
{ 
    $pdf=PDF::loadView('reports.directsalereport'); 
    return $pdf->download('dsread.pdf'); 
} 

여기 내 부분입니다.

<div class="panel-body"> 
    <center><h1><strong>M/s. Priti Enterprise</strong></h1></center> 
    </center> 
    <center><h2><i>Daily Sales Report</i></h2></center> 
    <div class="row"> 
     <div class="col-md-4"><strong>Client Name: {{$dsale[0]->client_name}}</strong></div> 
     <div class="col-md-4"></div> 
     <div class="col-md-4"><strong>Delivered by: {{$dsale[0]->deliverd_by}}</strong></div> 
    </div><br> 
    <div class="row"> 
     <div class="col-md-4"><strong>Client address: {{$dsale[0]->addr}}</strong></div> 
     <div class="col-md-4"></div> 
     <div class="col-md-4"><strong>Date: {{$dsale[0]->issue_date}}</strong></div> 
    </div><br><br> 

    <table class="table table-bordered"> 
     <thead> 
      <th class="col-md-1">SL no.</th> 
      <th>Product Name</th> 
      <th>Invoice no.</th> 
      <th>Unit per ctn.</th> 
      <th>Unit price</th> 
      <th class="col-md-2">Sales</th> 
      <th>Value</th> 
     </thead> 
     <tbody> 
      @foreach($dsale as $d) 
      <tr> 
       <td>#</td> 
       <td>{{$d->name}}</td> 
       <td>{{$d->transaction_code}}</td> 
       <td>{{$d->unitperctn}}</td> 
       <td>{{$d->unitprice}}</td> 
       <td>{{$d->ctn}} ctn {{$d->pcs}} pcs</td> 
       <td>{{$d->total}}</td> 
      </tr> 
      @endforeach 
     </tbody> 
    </table> 

    <div class="col-md-11"></div> 
    <div class="row"><strong>Total:{{$sumt}}</strong></div> 
    <div>{{$dsale->links()}}</div> 
    <div class="col-md-8"></div> 
    <div class="row"> 
     <a href="{{route('downpdf')}}" class=" btn btn-info"><i class=" glyphicon glyphicon-ok"></i> Download PDF</a> 
    </div> 
</div> 
+0

정확한 오류 메시지는 무엇입니까? –

+0

그리고이보기 코드'reports.directsalereport'를 게시하십시오. –

+0

@Gabrielle이 (가) 당신의 문제를 해결 했습니까? :) – jeugen

답변

3

배열의 범위는 compact입니다.

<div>{{$dsale[0]->links()}}</div>을 사용해야합니다.

저는 여러분이 배열을 압축하지 말아야한다고 생각합니다.

return view('reports.directsalereport',compact('dsale','sumt')); 

편집 됨 : 당신은 너무 PDF 다운로드를위한 당신의 방법은 다음과 같아야합니다, 너무, 당신의 PDF보기로 데이터를 전달해야한다.

public function dsalepdf() 
{ 

    $dsale=DB::table('directsales') 
       ->join('clients','directsales.client_id','=','clients.id') 
       ->join('products','directsales.product_id','=','products.id') 
       ->select('clients.client_name','clients.addr','directsales.*','products.name') 
       ->where('directsales.client_id','=',$id) 
       ->whereBetween('directsales.issue_date',[$fromdate,$todate]) 
       ->distinct() 
       ->paginate(3); 

      $sumt=DB::table('directsales') 
       ->where('directsales.client_id','=',$id) 
       ->sum('directsales.total'); 

    $pdf=PDF::loadView('reports.directsalereport',['dsale' => $dsale,'sumt'=> $sumt]); 
    return $pdf->download('dsread.pdf'); 
} 
+0

나는이 일을 시도하지만 여전히 오류를 보여줍니다 ** 정의되지 않은 변수 : dsale ** – Gabrielle

+0

@Gabrielle는 반환 전에 dd ($ dsale, $ sumt)를 기쁘게하십시오. – jeugen

+0

@Gabrielle는 pdf보기로 데이터를 전달하는 것을 잊지 않습니다. – jeugen