我在实时网站上收到此错误[2019-07-12 00:15:02] production.ERROR: Undefined index: {"userId":**,"email":"***********","exception":"[object] (ErrorException(code: 0): Undefined index: at /storage/ssd5/387/10173387/vendor/dompdf/dompdf/lib/Cpdf.php:3923)
[stacktrace]
。因此,我检查了Cpdf.php并转到3923行,它位于public function getFontHeight
内,错误位于$font=$this->fonts[$this->currentFont];
该如何解决?没有论坛,答案或讨论此错误,所以我卡住了
无论如何,我有4个由dompdf呈现的html,1个代表发票和3个代表报告。下载或流式发票没有问题,但是另外3个报告是错误3923
这是我的发票控制人
public function print_pemesanan($id)
{
set_time_limit(300);
$idp = $id;
$datap = \App\Pemesanan::where('id_pemesanan',$id)->first();
$result = \App\DPemesanan::where('id_pemesanan', $id)->get();
$result2 = \App\TPemesanan::join('t_dpemesanan','t_tpemesanan.id_dpemesanan','=','t_dpemesanan.id_dpemesanan')->join('t_stock','t_dpemesanan.id_stock','=','t_stock.id_stock')->where('t_tpemesanan.id_pemesanan',$id)->get();
$sum = \App\DPemesanan::select(DB::raw('sum(harga_pemesanan) as harga_total'))->where('id_pemesanan', $id)->groupBy('id_pemesanan')->get();
$sum2 = \App\TPemesanan::where('id_pemesanan',$id)->whereIn('status_tpemesanan',[1,2])->select(DB::raw('sum(harga_tpemesanan) as harga_total'))->groupBy('id_pemesanan')->first();
$pdf = PDF::loadview('mitra/pemesanan/faktur', compact('idp','datap','result','result2','sum','sum2'));
return $pdf->download('faktur_'.$id,'.pdf');
}
这是我由dompdf呈现的html发票(成功)
<html>
<head>
<link rel="stylesheet" href="{{ asset('assets') }}/bower_components/bootstrap/dist/css/bootstrap.min.css">
<!-- Font Awesome -->
<link rel="stylesheet" href="{{ asset('assets') }}/bower_components/font-awesome/css/font-awesome.min.css">
<!-- Ionicons -->
<link rel="stylesheet" href="{{ asset('assets') }}/bower_components/Ionicons/css/ionicons.min.css">
<!-- Theme style -->
<link rel="stylesheet" href="{{ asset('assets') }}/dist/css/AdminLTE.min.css">
<!-- AdminLTE Skins. Choose a skin from the css/skins
folder instead of downloading all of them to reduce the load. -->
<link rel="stylesheet" href="{{ asset('assets') }}/dist/css/skins/_all-skins.min.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,300italic,400italic,600italic">
<style>
.no-gutters {
margin-right: 0;
margin-left: 0;
> .col,
> [class*="col-"] {
padding-right: 0;
padding-left: 0;
}
}
</style>
</head>
<body>
<div class="content-header row text-center">
<img src="{{ asset('uploads') }}/logo.jpg" width="120" height="120"><br>
</div>
<section class="content">
<div class="box box-warning box-solid">
<div class="box-header with-border">
Pesanan dari Mitra : {{ $datap->mitra->nama_mitra }} ({{ $datap->mitra->email_mitra }}),
{{ date("d-M-Y",strtotime($datap->tgl_pemesanan)) }}
</div>
<div class="box-body">
<table class="table">
<thead>
<tr>
<th>No</th>
<th>Nama Pesanan</th>
<th>Harga Satuan</th>
<th>Jumlah Pesanan</th>
<th>Harga Pesanan</th>
</tr>
</thead>
<tbody>
@foreach($result as $row)
<tr>
<td>{{ !empty($i) ? ++$i : $i = 1}}</td>
<td>{{ $row->stock->nama_stock }}</td>
<td>Rp.{{ number_format($row->stock->harga_satuan,0,',','.') }},-/{{ $row->stock->satuan }}</td>
<td>{{ $row->jumlah_pemesanan }}{{ $row->stock->satuan }}</td>
<td>Rp.{{ number_format($row->harga_pemesanan,0,',','.') }},-</td>
</tr>
@endforeach
</tbody>
</table>
</div>
<!-- /.box-body -->
<div class="box-footer">
@foreach($sum as $row)
<div class="col-sm-3 pull-right">
<label class="control-label col-sm-6">Total Harga</label>
<div class="col-sm-3">
Rp.{{ number_format($row->harga_total,0,',','.') }},-
</div>
</div>
@endforeach
</div>
<!-- /.box-footer-->
</div>
<!-- /.box -->
<div class="box box-success box-solid">
<div class="box-header with-border">
Faktur Pesanan {{ $datap->id_pemesanan }}
</div>
<div class="box-body">
<table class="table">
<thead>
<tr>
<th>No</th>
<th>Waktu Proses</th>
<th>Nama Barang Pesanan</th>
<th>Jumlah Pesanan</th>
<th>Harga Pesanan</th>
<th>Status Pesanan</th>
<th>Keterangan</th>
</tr>
</thead>
<tbody>
@foreach($result2 as $row)
<tr>
<td>{{ !empty($u) ? ++$u : $u = 1}}</td>
<td>{{ date('d-M-Y H:i:s', strtotime($row->waktu_tpemesanan)) }}</td>
<td>{{ $row->nama_stock }}</td>
<td>{{ $row->jumlah_tpemesanan }}{{ $row->satuan }}</td>
<td>Rp.{{ number_format($row->harga_tpemesanan,0,',','.') }},-</td>
@if($row->status_tpemesanan==1)
<td>Dikirim Semua</td>
@elseif($row->status_tpemesanan==2)
<td>Dikirim Sebagian</td>
@elseif($row->status_tpemesanan==3)
<td>Ditolak</td>
@endif
<td>
@if(empty($row->keterangan))
---
@else
{{ $row->keterangan }}
@endif
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
<!-- /.box-body -->
<div class="box-footer">
<div class="col-sm-3 pull-right">
<label class="control-label col-sm-6">Total Bayar</label>
<div class="col-sm-3">
Rp.{{ number_format($sum2->harga_total,0,',','.') }},-
</div>
</div>
</div>
<!-- /.box-footer-->
</div>
</section>
<!-- jQuery 3 -->
<script src="{{ asset('assets') }}/bower_components/jquery/dist/jquery.min.js"></script>
<!-- Bootstrap 3.3.7 -->
<script src="{{ asset('assets') }}/bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
<!-- SlimScroll -->
<script src="{{ asset('assets') }}/bower_components/jquery-slimscroll/jquery.slimscroll.min.js"></script>
<!-- FastClick -->
<script src="{{ asset('assets') }}/bower_components/fastclick/lib/fastclick.js"></script>
<!-- AdminLTE App -->
<script src="{{ asset('assets') }}/dist/js/adminlte.min.js"></script>
<!-- AdminLTE for demo purposes -->
<script src="{{ asset('assets') }}/dist/js/demo.js"></script>
<script>
$(document).ready(function () {
$('.sidebar-menu').tree()
})
</script>
这是我3个报表控制器中的1个
public function pemesanan_preport(Request $request)
{
set_time_limit(2000);
$tgl1 = date('Y-m-d', strtotime($request->input('tanggal_mulai')));
$tgl2 = date('Y-m-d', strtotime($request->input('sampai_tanggal')));
if($tgl1 > date('Y-m-d') || $tgl2 > date('Y-m-d')){
return redirect('upper/laporan/pemesanan')->with('error','Tanggal yang diinput tidak bisa lebih besar dari '.date('d M Y').' (hari ini)');
}elseif($tgl2 != '1970-01-01' && $tgl1 > $tgl2){
return redirect('upper/laporan/pemesanan')->with('error','Tanggal mulai tidak bisa lebih besar dari inputan tanggal sampai');
}elseif($tgl1 == '1970-01-01' && $tgl2 == '1970-01-01'){
return redirect('upper/laporan/pemesanan')->with('error','Salah satu dari kedua tanggal harus diisi');
}elseif($tgl1 == '1970-01-01'){
$p = \App\Pemesanan::whereDate('tgl_pemesanan',$tgl2)->orderBy('tgl_pemesanan','desc')->get();
//$tp = \App\TPemesanan::whereDate('waktu_tpemesanan',$tgl2)->get();
$pdf = PDF::loadview('pimpinan/laporan/pemesanan/report', compact('p','tgl1','tgl2'))->setPaper('a4','landscape');
return $pdf->download('laporan pemesanan tanggal '.date('d-M-Y', strtotime($tgl2)).'.pdf');
}elseif($tgl2 == '1970-01-01'){
$p = \App\Pemesanan::whereBetween('tgl_pemesanan',[$tgl1, date('Y-m-d')])->orderBy('tgl_pemesanan','desc')->get();
//$tp = \App\TPemesanan::whereBetween(DB::raw('date(waktu_tpemesanan)'),[$tgl1, date('Y-m-d')])->get();
$pdf = PDF::loadview('pimpinan/laporan/pemesanan/report',compact('p','tgl1','tgl2'))->setPaper('a4','landscape');
return $pdf->download('laporan pemesanan tanggal '.date('d-M-Y', strtotime($tgl1)).' sampai tanggal '.date('d-M-Y').'.pdf');
}else{
$p = \App\Pemesanan::whereBetween('tgl_pemesanan',[$tgl1,$tgl2])->orderBy('tgl_pemesanan','desc')->get();
//$tp = \App\TPemesanan::whereBetween(DB::raw('date(waktu_tpemesanan)'),[$tgl1, $tgl2])->get();
$pdf = PDF::loadview('pimpinan/laporan/pemesanan/report', compact('p','tgl1','tgl2'))->setPaper('a4','landscape');
return $pdf->download('laporan pemesanan tanggal '.date('d-M-Y', strtotime($tgl1)).' sampai tanggal '.date('d-M-Y', strtotime($tgl2)).'.pdf');
}
}
这是我由dompdf呈现的3个报告html中的1个(其他2个出现相同的错误)
<html>
<head>
<link rel="stylesheet" href="{{ asset('assets') }}/bower_components/bootstrap/dist/css/bootstrap.min.css">
<!-- Font Awesome -->
<link rel="stylesheet" href="{{ asset('assets') }}/bower_components/font-awesome/css/font-awesome.min.css">
<!-- Ionicons -->
<link rel="stylesheet" href="{{ asset('assets') }}/bower_components/Ionicons/css/ionicons.min.css">
<!-- Theme style -->
<link rel="stylesheet" href="{{ asset('assets') }}/dist/css/AdminLTE.min.css">
<!-- AdminLTE Skins. Choose a skin from the css/skins
folder instead of downloading all of them to reduce the load. -->
<link rel="stylesheet" href="{{ asset('assets') }}/dist/css/skins/_all-skins.min.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,300italic,400italic,600italic">
<style>
.no-gutters {
margin-right: 0;
margin-left: 0;
> .col,
> [class*="col-"] {
padding-right: 0;
padding-left: 0;
}
}
table, td, th, tr {
border: 1px solid black !important;
}
</style>
</head>
<body>
<div class="content-header row text-center">
<img src="{{ asset('uploads') }}/logo.jpg" width="120" height="120"><br>
</div>
<section class="content">
<div class="box box-warning box-solid">
<div class="box-header">
Laporan Pemesanan
@if($tgl1 == '1970-01-01')
Tanggal <strong>{{ date('d-M-Y', strtotime($tgl2)) }}</strong>
@elseif($tgl2 == '1970-01-01')
Tanggal <strong>{{ date('d-M-Y', strtotime($tgl1)) }}</strong> Sampai <strong>{{ date('d-M-Y') }}</strong>
@else
Tanggal <strong>{{ date('d-M-Y', strtotime($tgl1)) }}</strong> Sampai <strong>{{ date('d-M-Y', strtotime($tgl2)) }}</strong>
@endif
<div class="pull-right">Dicetak pada tanggal <strong>{{ date('d-M-Y') }}</strong></div>
</div>
<div class="box-body">
<table class="table text-center">
<thead>
<tr>
<th>No</th>
<th>ID Pemesanan</th>
<th>Tanggal Pemesanan</th>
<th>Nama Mitra</th>
<th>Harga Total</th>
<th>Barang Pesanan</th>
<th>Harga Satuan</th>
<th>Jumlah Pesanan</th>
<th>Status Pesanan</th>
<th>Harga Pesanan</th>
</tr>
</thead>
<tbody>
@foreach ($p as $row)
<tr>
<td rowspan='{{ \App\TPemesanan::where("id_pemesanan",$row->id_pemesanan)->count() }}'>{{ !empty($i) ? ++$i : $i = 1}}</td>
<td rowspan='{{ \App\TPemesanan::where("id_pemesanan",$row->id_pemesanan)->count() }}'>{{ $row->id_pemesanan }}</td>
<td rowspan='{{ \App\TPemesanan::where("id_pemesanan",$row->id_pemesanan)->count() }}'>{{ date('d-M-Y', strtotime($row->tgl_pemesanan)) }}</td>
<td rowspan='{{ \App\TPemesanan::where("id_pemesanan",$row->id_pemesanan)->count() }}'>{{ $row->mitra->nama_mitra }}</td>
<td rowspan='{{ \App\TPemesanan::where("id_pemesanan",$row->id_pemesanan)->count() }}'>Rp. {{ number_format($row->harga_total,0,',','.') }},-</td>
@foreach(\App\TPemesanan::where("id_pemesanan",$row->id_pemesanan)->limit(1)->get() as $row2)
<td>{{ \App\DPemesanan::where("id_dpemesanan",$row2->id_dpemesanan)->first()->stock->nama_stock }}</td>
<td>Rp. {{ number_format(\App\DPemesanan::where("id_dpemesanan",$row2->id_dpemesanan)->first()->stock->harga_satuan,0,',','.') }},-/{{ \App\DPemesanan::where("id_dpemesanan",$row2->id_dpemesanan)->first()->stock->satuan }}</td>
<td>{{ \App\DPemesanan::where("id_dpemesanan",$row2->id_dpemesanan)->first()->jumlah_pemesanan }}{{ \App\DPemesanan::where("id_dpemesanan",$row2->id_dpemesanan)->first()->stock->satuan }}</td>
<td>
@if(\App\TPemesanan::where("id_tpemesanan",$row2->id_tpemesanan)->first()->status_tpemesanan == 1)
{{ \App\TPemesanan::where("id_tpemesanan",$row2->id_tpemesanan)->first()->jumlah_tpemesanan }}{{ \App\DPemesanan::where("id_dpemesanan",$row2->id_dpemesanan)->first()->stock->satuan }}
(Dikirim Semua)
@elseif(\App\TPemesanan::where("id_tpemesanan",$row2->id_tpemesanan)->first()->status_tpemesanan == 2)
{{ \App\TPemesanan::where("id_tpemesanan",$row2->id_tpemesanan)->first()->jumlah_tpemesanan }}{{ \App\DPemesanan::where("id_dpemesanan",$row2->id_dpemesanan)->first()->stock->satuan }}
(Dikirim Sebagian)
@elseif(\App\TPemesanan::where("id_tpemesanan",$row2->id_tpemesanan)->first()->status_tpemesanan == 3)
{{ \App\TPemesanan::where("id_tpemesanan",$row2->id_tpemesanan)->first()->jumlah_tpemesanan }}{{ \App\DPemesanan::where("id_dpemesanan",$row2->id_dpemesanan)->first()->stock->satuan }}
(Ditolak)
@endif
</td>
<td>Rp. {{ number_format(\App\TPemesanan::where("id_tpemesanan",$row2->id_tpemesanan)->first()->harga_tpemesanan,0,',','.') }},-</td>
</tr>
@foreach(\App\TPemesanan::where("id_pemesanan",$row->id_pemesanan)->get() as $row3)
@if(\App\DPemesanan::where("id_dpemesanan",$row3->id_dpemesanan)->first() != \App\DPemesanan::where("id_dpemesanan",$row2->id_dpemesanan)->first() && \App\TPemesanan::where("id_tpemesanan",$row3->id_tpemesanan)->first() != \App\TPemesanan::where("id_tpemesanan",$row2->id_tpemesanan)->first())
<tr>
<td>{{ \App\DPemesanan::where("id_dpemesanan",$row3->id_dpemesanan)->first()->stock->nama_stock }}</td>
<td>Rp. {{ number_format(\App\DPemesanan::where("id_dpemesanan",$row3->id_dpemesanan)->first()->stock->harga_satuan,0,',','.') }},-/{{ \App\DPemesanan::where("id_dpemesanan",$row3->id_dpemesanan)->first()->stock->satuan }}</td>
<td>{{ \App\DPemesanan::where("id_dpemesanan",$row3->id_dpemesanan)->first()->jumlah_pemesanan }}{{ \App\DPemesanan::where("id_dpemesanan",$row3->id_dpemesanan)->first()->stock->satuan }}</td>
<td>
@if(\App\TPemesanan::where("id_tpemesanan",$row3->id_tpemesanan)->first()->status_tpemesanan == 1)
{{ \App\TPemesanan::where("id_tpemesanan",$row3->id_tpemesanan)->first()->jumlah_tpemesanan }}{{ \App\DPemesanan::where("id_dpemesanan",$row3->id_dpemesanan)->first()->stock->satuan }}
(Dikirim Semua)
@elseif(\App\TPemesanan::where("id_tpemesanan",$row3->id_tpemesanan)->first()->status_tpemesanan == 2)
{{ \App\TPemesanan::where("id_tpemesanan",$row3->id_tpemesanan)->first()->jumlah_tpemesanan }}{{ \App\DPemesanan::where("id_dpemesanan",$row3->id_dpemesanan)->first()->stock->satuan }}
(Dikirim Sebagian)
@elseif(\App\TPemesanan::where("id_tpemesanan",$row3->id_tpemesanan)->first()->status_tpemesanan == 3)
{{ \App\TPemesanan::where("id_tpemesanan",$row3->id_tpemesanan)->first()->jumlah_tpemesanan }}{{ \App\DPemesanan::where("id_dpemesanan",$row3->id_dpemesanan)->first()->stock->satuan }}
(Ditolak)
@endif
</td>
<td>Rp. {{ number_format(\App\TPemesanan::where("id_tpemesanan",$row3->id_tpemesanan)->first()->harga_tpemesanan,0,',','.') }},-</td>
</tr>
@endif
@endforeach
@endforeach
@endforeach
</tbody>
</table>
</div>
<!-- /.box-body -->
<div class="box-footer">
Some System
<div class="pull-right">
</div>
</div>
<!-- /.box-footer-->
</div>
<!-- /.box -->
</section>
<!-- jQuery 3 -->
<script src="{{ asset('assets') }}/bower_components/jquery/dist/jquery.min.js"></script>
<!-- Bootstrap 3.3.7 -->
<script src="{{ asset('assets') }}/bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
<!-- SlimScroll -->
<script src="{{ asset('assets') }}/bower_components/jquery-slimscroll/jquery.slimscroll.min.js"></script>
<!-- FastClick -->
<script src="{{ asset('assets') }}/bower_components/fastclick/lib/fastclick.js"></script>
<!-- AdminLTE App -->
<script src="{{ asset('assets') }}/dist/js/adminlte.min.js"></script>
<!-- AdminLTE for demo purposes -->
<script src="{{ asset('assets') }}/dist/js/demo.js"></script>
<script>
$(document).ready(function () {
$('.sidebar-menu').tree()
})
</script>
这仅在实时服务器中发生,我使用免费的000webhost服务器,这是我出错的原因吗?免费版本?还是其他?请帮助我