#php #laravel #pdf #laravel-7
#php #ларавель #PDF #pdf-генерация #ларавель-7
Вопрос:
Мой PDF-файл приложения Laravel 7 отлично работал на локальном хосте, но на интернет-сервере он выдает мне эту ошибку — gt; Эта страница не работает и в настоящее время не может обработать этот запрос. ОШИБКА HTTP 500. Каждый раз, когда я загружаю его обратно на локальный сервер, он все равно будет работать, как всегда, и продолжал выдавать мне те же ошибки на интернет-сервере. пожалуйста, как я могу это решить?
Файл контроллера
namespace AppHttpControllersBackend; use AppModelsBranch; use AppModelsProduct; use CarbonCarbon; use IlluminateHttpRequest; use AppHttpControllersController; use BarryvdhDomPDFFacade as PDF; use Auth; class StockReportController extends Controller { public function stockReportPdf(Request $request){ if (!Auth::user()-gt;can('view_stock')) { return redirect('home')-gt;with(denied()); } // end permission checking $products = Product::orderBy('title', 'ASC')-gt;get(); $random_string = str_random(10); $pdf = PDF::loadView('backend.pdf.reports.stock.all-branch', compact('products', 'request'))-gt;setPaper('a4'); if ($request-gt;action_type == 'download'){ return $pdf-gt;download('stock-report-' . Carbon::now()-gt;format(get_option('app_date_format')) . '-'. $random_string . '.pdf'); }elseif($request-gt;action_type == 'print'){ @unlink('pdf/reports/stock/' . 'stock-report.pdf'); $pdf-gt;save('pdf/reports/stock/' . 'stock-report.pdf'); return redirect('pdf/reports/stock/' . 'stock-report.pdf'); }else{ $headers = [ 'Cache-Control' =gt; 'must-revalidate, post-check=0, pre-check=0' , 'Content-type' =gt; 'text/csv' , 'Content-Disposition' =gt; 'attachment; filename=galleries.csv' , 'Expires' =gt; '0' , 'Pragma' =gt; 'public' ]; $filename = 'download.csv'; $handle = fopen($filename, 'w'); fputcsv($handle, [ __('pages.sl'), __('pages.product'), __('pages.purchase') . ' '. __('pages.quantity'), __('pages.sells') . ' '. __('pages.quantity'), __('pages.current_stock_quantity'), __('pages.current_stock_value'), ]); $products = Product::orderBy('title', 'ASC')-gt;get(); foreach ($products as $key =gt; $product) { if (Auth::user()-gt;can('access_to_all_branch')) { $purchaseQuantity = $product-gt;purchaseProducts-gt;sum('quantity'); $sellQuantity = $product-gt;sellProducts-gt;sum('quantity'); $current_stock_qty = $product-gt;purchaseProducts-gt;sum('quantity') - $product-gt;sellProducts-gt;sum('quantity'); } else { $purchaseQuantity = $product-gt;purchaseProducts-gt;where('branch_id', auth()-gt;user()-gt;employee-gt;branch_id)-gt;sum('quantity'); $sellQuantity = $product-gt;sellProducts-gt;where('branch_id', auth()-gt;user()-gt;employee-gt;branch_id)-gt;sum('quantity'); $current_stock_qty = productAvailableTransactionStockQty($product-gt;id); } $product_tax = $product-gt;sell_price * $product-gt;tax-gt;value / 100; $current_stock_amount = $current_stock_qty * ($product-gt;sell_price $product_tax); fputcsv($handle, [ $key 1, $product-gt;title . '|'. $product-gt;sku, $purchaseQuantity, $sellQuantity, $current_stock_qty, get_option('app_currency') . number_format($current_stock_amount,2), ]); } fclose($handle); return response()-gt;download($filename, 'stock-report-' . Carbon::now()-gt;toDateString() . '.csv', $headers); } } private function branchRequisitionFromQty($request, $product){ $branch_requisitions_from = AppModelsRequisition::where('requisition_from', $request-gt;branch_id) -gt;where('status', 2) -gt;select('id') -gt;distinct() -gt;get(); return $branch_requisitions_from_qty = AppModelsRequisitionProduct::whereIn('requisition_id', $branch_requisitions_from) -gt;where('product_id', $product-gt;id) -gt;sum('quantity'); } private function branchRequisitionToQty($request, $product){ $branch_requisitions_to = AppModelsRequisition::where('requisition_to', $request-gt;branch_id) -gt;where('status', 2) -gt;select('id') -gt;distinct() -gt;get(); return $branch_requisitions_to_qty = AppModelsRequisitionProduct::whereIn('requisition_id', $branch_requisitions_to) -gt;where('product_id', $product-gt;id) -gt;select('id') -gt;sum('quantity'); } }
Файл шаблона блейда
lt;div class="card-header p-0"gt; lt;div class="btn-group btn-group-justified nav-buttons" role="group" aria-label="Basic example"gt; lt;a href="{{url('report/stock-report')}}" class="btn btn-outline-primary {{ active_if_full_match('report/stock-report') }}"gt;lt;i class="fas fa-money-check"gt;lt;/igt; Stock Summary lt;/agt; lt;/divgt; lt;div class="btn-group btn-group-sm filter-pdf-btn" role="group"gt; lt;form action="{{url('report/stock-report-pdf')}}" method="get"gt; lt;input type="hidden" name="action_type" value="download"gt; lt;button type="submit" class="btn btn-secondary rounded-0 btn-sm pl-2 pr-2"gt;lt;i class="fas fa-file-download mr-2"gt;lt;/igt; {{__('pages.pdf')}} lt;/buttongt; lt;/formgt; lt;form action="{{url('report/stock-report-pdf')}}" method="get" target="_blank"gt; lt;input type="hidden" name="action_type" value="print"gt; lt;button type="submit" class="btn btn-warning btn-sm rounded-0 pl-2 pr-2"gt;lt;i class="fa fa-print mr-2"gt;lt;/igt; {{__('pages.print')}} lt;/buttongt; lt;/formgt; lt;form action="{{url('report/stock-report-pdf')}}" method="get"gt; lt;input type="hidden" name="action_type" value="csv"gt; lt;button type="submit" class="btn btn-secondary btn-sm rounded-0 pl-2 pr-2"gt;lt;i class="fa fa-file-csv mr-2"gt;lt;/igt; {{__('pages.csv')}} lt;/buttongt; lt;/formgt; lt;/divgt; lt;/divgt;
Комментарии:
1. Ошибка 500 в основном говорит о том, что «Это серьезно», Ищите подсказки в журналах ошибок
2. @RiggsFolly Я только что проверил журнал ошибок, там написано, что файл пуст
3. Затем вам нужно убедиться, что ведение журнала включено
4. @RiggsFolly он включен, я мог видеть обычные журналы за сегодняшний день, и в разделе журнала ошибок я также мог видеть журнал за вчерашний день, но сегодняшний собственный пуст.