Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [inny][Laravel 5.2] Drukowanie do pdf, błąd 500
miccom
post
Post #1





Grupa: Zarejestrowani
Postów: 493
Pomógł: 8
Dołączył: 7.07.2007
Skąd: Tychy

Ostrzeżenie: (0%)
-----


Cześć.
Chcę zlecić laravelowi drukowanie do PDF, ale przy dużcyh wydrukach otrzymuję komunikat


Strona strona.pl nie działa

Serwer miccom.pl nie może teraz obsłużyć tego żądania.
HTTP ERROR 500



Jak rozwiązać ten problem?
Proszę o pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
Pyton_000
post
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Poprawić kod.
Go to the top of the page
+Quote Post
miccom
post
Post #3





Grupa: Zarejestrowani
Postów: 493
Pomógł: 8
Dołączył: 7.07.2007
Skąd: Tychy

Ostrzeżenie: (0%)
-----


Hmm,a w jaki sposób mogę poprawić kod?
Dla mniejszej ilości elementów działa ok, jak kod wyświetlam na stronie w html to jest ok, ale jk tylko chcę dać do pdf to zamula.

Mimo tego mam poprawić kod?

Poniżej kod, i myślę że chyba nie ma w nim nic skomplikowanego oprócz ilości danych.

  1. public function drukujListe($id)
  2. {
  3. switch($id){
  4. case 1:
  5. $data = Player::where('plec', '=', 1)->where('rok','=',Auth::user()->rok)->orderBy('nazwisko')->get();
  6. $name ='Dziewcząt';
  7. break;
  8. case 2:
  9. $data = Player::where('plec', '=', 2)->where('rok','=',Auth::user()->rok)->orderBy('nazwisko')->get();
  10. $name ='Chłopców';
  11. break;
  12. case 3:
  13. $data = Player::where('rok','=',Auth::user()->rok)->orderBy('nazwisko')->get();
  14. $name ='Dziewcząt i chłopców';
  15. break;
  16. }
  17.  
  18. $formPrint = '
  19. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  20. <style>
  21. *{ font-family: DejaVu Sans, font-size: 12px;}
  22. .footer { position: fixed; left: 0px; bottom: 0px; right: 0px; height: 50px; text-align:center; }
  23. td{padding-left:5px;}
  24. #printList{
  25. margin:0 auto;
  26. width:400px;
  27. }
  28. #headerPrintList{
  29. text-align:center;
  30. height:60px;
  31.  
  32. }
  33. </style>
  34. <div id="printList">
  35. <div id="headerPrintList">
  36. Rocznik 2016<br>
  37. </div>
  38. <table border="1" style="width:100%; border-collapse: collapse;font-size:11px;">
  39. <tr>
  40. <td colspan="3" style="text-align:center; font-weight:bold;">
  41. LISTA '.$name.'
  42. </td>
  43. </tr>
  44. <tr style="background-color:lightgray">
  45. <td style="width:10%">l.p</td>
  46. <td style="width:70%;">
  47. NAZWISKO, Imię
  48. </td>
  49. <td style="width:20%;">
  50. szkoła
  51. </td>
  52. </tr>';
  53. $i = 1;
  54. foreach($data as $singleData ){
  55.  
  56.  
  57.  
  58.  
  59.  
  60. $formPrint .= '<tr>
  61. <td>'.$i.'</td>
  62. <td>'.$singleData->nazwisko.' '.$singleData->imie.'</td>
  63. <td>
  64. '.$this->pobierzSzkoleTXT($singleData->szkolaId).'
  65. </td>
  66. </tr>';
  67. $i++;
  68. }
  69. $formPrint .= '</table>
  70. <p class="footer">LISTA 2016<br>
  71. </p>
  72. </div>
  73. ';
  74.  
  75. //echo $formPrint;
  76. $pdf = PDF::loadHTML($formPrint)->setPaper('a4')->setOrientation('portrait')->setWarnings(true);
  77. return $pdf->download('lista'.$name.'.pdf');
  78.  
  79. }


Ten post edytował miccom 3.03.2017, 09:57:32
Go to the top of the page
+Quote Post
Pyton_000
post
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


a PDF:: to ?
Go to the top of the page
+Quote Post
miccom
post
Post #5





Grupa: Zarejestrowani
Postów: 493
Pomógł: 8
Dołączył: 7.07.2007
Skąd: Tychy

Ostrzeżenie: (0%)
-----


PDF to programik do obsługi druków pdf

https://github.com/barryvdh/laravel-dompdf
Go to the top of the page
+Quote Post
Pyton_000
post
Post #6





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Spróbuj https://github.com/barryvdh/laravel-snappy

Nie każdy lib poradzi sobie z generowaniem dużych dok. pdf
Go to the top of the page
+Quote Post
k_@_m_i_l
post
Post #7





Grupa: Zarejestrowani
Postów: 349
Pomógł: 72
Dołączył: 22.01.2008
Skąd: Wadowice/Oświęcim

Ostrzeżenie: (0%)
-----


https://github.com/niklasravnsborg/laravel-pdf - ostatnio to wykorzystywałem. 1000 stron dokumentu udało się wygenerować. Na każdej stronie były dwa obrazki. Ale to też zależy od ustawień serwera (dostępna pamięć, czas wykonania etc).
Go to the top of the page
+Quote Post
Koldy
post
Post #8





Grupa: Zarejestrowani
Postów: 98
Pomógł: 1
Dołączył: 28.06.2009
Skąd: Great Britan

Ostrzeżenie: (0%)
-----


moze tak troche offtopic,
ale czemu jak masz dostepny blade od laravel'a to pakujesz caly kod html w zmienna deklarowana w funkcji?
Go to the top of the page
+Quote Post
miccom
post
Post #9





Grupa: Zarejestrowani
Postów: 493
Pomógł: 8
Dołączył: 7.07.2007
Skąd: Tychy

Ostrzeżenie: (0%)
-----


A szczerze, coś to zmienia?

Nigdy nie zastanawiałem się nad tym...
Jeśli coś zmienia to pisz, zmienię.
Go to the top of the page
+Quote Post
Pyton_000
post
Post #10





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Porządek (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Rysh
post
Post #11





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

Ostrzeżenie: (0%)
-----


Cytat(Pyton_000 @ 13.03.2017, 17:44:37 ) *

Dokładnie, popraw kod - oddziel logikę od widoku.

Poza tym, używaj angielskich słówek skoro używasz angielskich nazw masz nazwę metody drukujListę a model nazywa się już Player - piszesz po angielsku czy po polsku ?
Oczywiście to nie wpływa na działanie kodu, ale dobrych nawyków trzeba się wyuczyć. W zapytaniu where wg mnie powinieneś używać stałych a nie plec = 1 czy 2
Go to the top of the page
+Quote Post
miccom
post
Post #12





Grupa: Zarejestrowani
Postów: 493
Pomógł: 8
Dołączył: 7.07.2007
Skąd: Tychy

Ostrzeżenie: (0%)
-----


Cytat(Rysh @ 18.03.2017, 15:04:12 ) *
W zapytaniu where wg mnie powinieneś używać stałych a nie plec = 1 czy 2


A jak skonstruować where aby używać stałych?
Nie zrozumiałem tej porady.
Proszę o wyjaśnienie.
Go to the top of the page
+Quote Post
Sabistik
post
Post #13


Administrator wortalu


Grupa: Przyjaciele php.pl
Postów: 960
Pomógł: 39
Dołączył: 21.10.2003
Skąd: Kraków

Ostrzeżenie: (0%)
-----


To jest ogólna porada do przejrzystości kodu. Powinieneś zdefiniować stałe typu GENDER_MALE = 1; GENDER_FEMAILE = 2; wtedy używasz np
  1. Player::where('plec', '=', Player::GENDER_MALE)->


Dzięki temu nie musisz pamiętać konkretnych wartości liczbowych.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.12.2025 - 00:36