Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [inny][Laravel 5.2] Drukowanie do pdf, błąd 500
miccom
post 3.03.2017, 07:57:44
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.


--------------------
Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU!
Go to the top of the page
+Quote Post
Pyton_000
post 3.03.2017, 08:19:18
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 3.03.2017, 09:36:53
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


--------------------
Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU!
Go to the top of the page
+Quote Post
Pyton_000
post 3.03.2017, 10:06:09
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 3.03.2017, 11:43:42
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


--------------------
Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU!
Go to the top of the page
+Quote Post
Pyton_000
post 3.03.2017, 11:57:27
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 5.03.2017, 12:11:15
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).


--------------------
"PHP to człowiek. MySQL to również człowiek."
Go to the top of the page
+Quote Post
Koldy
post 6.03.2017, 03:26:54
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?


--------------------
$progress++;
Go to the top of the page
+Quote Post
miccom
post 13.03.2017, 12:53:39
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ę.


--------------------
Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU!
Go to the top of the page
+Quote Post
Pyton_000
post 13.03.2017, 17:44:37
Post #10





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

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


Porządek smile.gif
Go to the top of the page
+Quote Post
Rysh
post 18.03.2017, 14:04:12
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 ) *
Porządek smile.gif

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 2.04.2017, 21:14:33
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.


--------------------
Jeśli pomogłem- kliknij POMÓGŁ-przyda się ;)- jeśli piszę bzdury- pisz pod postami. Poprawię się.
PISZĘ POPRAWNIE PO POLSKU!
Go to the top of the page
+Quote Post
Sabistik
post 4.04.2017, 11:00:17
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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.04.2024 - 12:20