Obecnie mam próbę / połów wokół linii kodu, ale gdy błędów nie jest prawidłowo drukowania błędu. Obecnie:

try
{
    // code here
}
catch (\Exception $e)
{
    return Redirect::back()
              ->withErrors($e->getResponse()->getBody()->getContents()["message"]);
}

Wydruki:

{

Teraz, jeśli użyję:

return Redirect::back()->withErrors($e->getResponse()->getBody()->getContents());

Wtedy otrzymuję:

{"Wiadomość": Użytkownik nie istnieje}

Jak mogę to zmienić, po błędu, tylko drukowanie "Użytkownik nie istnieje"?

0
Whisou138 21 luty 2019, 19:43

2 odpowiedzi

Najlepsza odpowiedź

Musisz zdekodować ciąg JSON, dzięki czemu można uzyskać dostęp do atrybutu wiadomości.

try {
    //code here
} catch (\Exception $e) {
    $response = json_decode($e->getResponse()->getBody()->getContents());
    $message = $response->message;

    return Redirect::back()->withErrors($message);
}
3
otezz 13 wrzesień 2019, 08:21

Próbujesz uzyskać dostęp do serializowanego ciągu JSON z dostępem do tablicy. To oczywiście zawiedzie. Tutaj rozwiązanie 1: 1, które obejmuje dekodowanie JSON.

try
{
    // code here
}
catch (\Exception $e)
{
    return (json_decode(Redirect::back()
              ->withErrors($e->getResponse()->getBody()->getContents()))->message;
}
1
Blackbam 21 luty 2019, 23:24