Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Symfony][Symfony2] Błąd 500
wiciu010
post
Post #1





Grupa: Zarejestrowani
Postów: 195
Pomógł: 0
Dołączył: 29.04.2007

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


Mam aplikację w Symfony2. Przy wywołaniu akcji, która ma odebrać dane wysłane w formacie JSON z innego serwisu czasami otrzymuję błąd 500. Taka sytuacja powtarza się czasami, mimo, że wysyłane dane są w strukturze takie same a różnią się tylko wartościami. Jak mogę zdiagnozować co powoduje błąd 500? Odpalałem w trybie dev, ale po wejściu w przeglądarkę nie pojawił mi się na dole pasek świadczący, że jestemw tym trybie tylko od razu błąd 500.
Go to the top of the page
+Quote Post
Forti
post
Post #2





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

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


Pokaż jakiś kod, pokaż dane.

Sprawdz logi w app/logs/dev.log.
Symfony w trybie dev pokazuje nawet dokładnie lokalizacje wystąpienia błędu. Sczegółowe informacje.
Go to the top of the page
+Quote Post
wiciu010
post
Post #3





Grupa: Zarejestrowani
Postów: 195
Pomógł: 0
Dołączył: 29.04.2007

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


Cytat(Forti @ 22.06.2015, 11:33:55 ) *
Sprawdz logi w app/logs/dev.log.


Sprawdzam logi i tam nie ma żadnych komunikatów ERROR, tylko INFO oraz DEBUG. Odnośnie mojego wywołania jest:

Kod
[2015-06-22 11:39:43] request.INFO: Matched route "status_update" (parameters: "_controller": "Ex\CallBundle\Controller\DefaultController::statusUpdateAction", "_route": "status_update") [] []
[2015-06-22 11:39:43] security.INFO: Populated SecurityContext with an anonymous Token [] []
[2015-06-22 11:39:43] request.INFO: Matched route "status_update" (parameters: "_controller": "Ex\CallBundle\Controller\DefaultController::statusUpdateAction", "_route": "status_update") [] []
[2015-06-22 11:39:43] security.INFO: Populated SecurityContext with an anonymous Token [] []


Cytat(Forti @ 22.06.2015, 11:33:55 ) *
Pokaż jakiś kod, pokaż dane.


Dane, które odbieram:

Kod
data => {
   "id":24202,
   "created":1434963469,
   "details":{
      "channel_id":379,
      "dst":"",
      "src":"+48xxxxxx",
      "start":0,
      "end":0,
      "duration":0,
      "operator":"",
      "cost":"0",
      "status":"pending"
     }
},


Cytat(Forti @ 22.06.2015, 11:33:55 ) *
Pokaż jakiś kod, pokaż dane.


Kod, który obsługuje odbiór danych:

  1. public function statusUpdateAction(Request $request)
  2. {
  3. $post = $request->request->all();
  4. $data = json_decode($post['data']);
  5. $em = $this->getDoctrine()->getEntityManager();
  6. if (key_exists('data', $post)){
  7. $virtualNumber = $this->getDoctrine()->getRepository('ExCallBundle:Product')
  8. ->findOneBy(array('channel_id'=>$data->details->channel_id, 'is_active'=>1, 'type'=>'numer'));
  9. if ($virtualNumber && $virtualNumber->getMedia()){
  10. $media = $virtualNumber->getMedia();
  11. }else{
  12. $media = $this->getDoctrine()->getRepository('ExCallBundle:Media')
  13. ->findOneBy(array('channel_id'=>$data->details->channel_id));
  14. }
  15. $call = new History();
  16. $em->persist($call);
  17. $call->setDate(date_create(date('Y-m-d H:i:s', $data->created)))
  18. ->setOperatorId($data->id)
  19. ->setPhoneNumber($data->details->src)
  20. ->setDuration($data->details->duration)
  21. ->setCost(0)
  22. ->setStatus($data->details->status)
  23. ->setMedia($media)
  24. ->setProfile($media->getProfile())
  25. ->setUser($media->getUser());
  26.  
  27. if ($media->getUser()->getType()=='agency' && $virtualNumber){
  28. $call->setAgentNumber($virtualNumber->getAgentNumber()->getNumber());
  29. }
  30. }
  31. $em->flush();
  32. return new Response('ok');
  33. }


Ten post edytował wiciu010 22.06.2015, 10:58:59
Go to the top of the page
+Quote Post
Forti
post
Post #4





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

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


co znaczy "mam 500" ? To co pokazałeś to nie jest wszystko. Jak masz tryb developerski to nawet bez 500 logi są znacznie większe.

1. na pewno uruchamiasz tryb dev?
2. pokaż screen gdy dostajesz tą 500
Go to the top of the page
+Quote Post
prz3kus
post
Post #5





Grupa: Zarejestrowani
Postów: 260
Pomógł: 30
Dołączył: 22.01.2007

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


pasek debugera może się nie pojawić jeżeli w twigu nie ma kodu HTML
Go to the top of the page
+Quote Post
wiciu010
post
Post #6





Grupa: Zarejestrowani
Postów: 195
Pomógł: 0
Dołączył: 29.04.2007

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


Ok, dzięki za pomoc. Problem został rozwiązany.
Go to the top of the page
+Quote Post
Pyton_000
post
Post #7





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

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


Super, a jak?
Go to the top of the page
+Quote Post
Forti
post
Post #8





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

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


Ehh internety... gościu ma problem - opisuje i się produkuje. Ludzie chcą pomóc i poświęcają swój czas. A potem nagle "problem rozwiązany". No super.

To teraz dla innych powiedz co się stało - może ktoś kiedyś będzie miał podobny problem i właśnie tutaj znajdzie rozwiązanie.
Go to the top of the page
+Quote Post
wiciu010
post
Post #9





Grupa: Zarejestrowani
Postów: 195
Pomógł: 0
Dołączył: 29.04.2007

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


Cytat(Forti @ 22.06.2015, 21:29:27 ) *
Ehh internety... gościu ma problem - opisuje i się produkuje. Ludzie chcą pomóc i poświęcają swój czas. A potem nagle "problem rozwiązany". No super.

To teraz dla innych powiedz co się stało - może ktoś kiedyś będzie miał podobny problem i właśnie tutaj znajdzie rozwiązanie.


Masz rację sorry.

No więc okazało się, że sama logika w kontrolerze była dobra. Problem polegał na tym, że błąd był w zapytaniu sql. Sprawdziłem logi w app/logs/dev.log i od razu znalazłem rozwiązanie.
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: 7.10.2025 - 18:08