0

I am using a Laravel package that gets the latest exchange rates from the European Bank.

When I call

$lookup = new ExchangeRatesAPI();
$rsp  = $lookup->setBaseCurrency('GBP')->fetch();

I get

BenMajor\ExchangeRatesAPI\Response {#571 ▼
  -response: GuzzleHttp\Psr7\Response {#566 ▶}
  -headers: array:15 [▶]
  -bodyRaw: "{"rates":{"CAD":1.7151176498,"HKD":10.279978309,"ISK":161.385391616,"PHP":66.9884943651,"DKK":8.8082944311,"HUF":388.9989154524,"CZK":29.9559107842,"GBP":1.0,"R ▶"
  -body: {#554 ▶}
  -statusCode: 200
  -timestamp: "2020-01-03T09:22:49+00:00"
  -baseCurrency: "GBP"
  -rates: {#569 ▼
    +"CAD": 1.7151176498
    +"HKD": 10.279978309
    +"ISK": 161.385391616
    +"PHP": 66.9884943651
    +"DKK": 8.8082944311
    +"HUF": 388.9989154524
    +"CZK": 29.9559107842
    +"GBP": 1.0
    +"RON": 5.638232659
    +"SEK": 12.3459235158
    +"IDR": 18320.507379639
    +"INR": 94.1982600085
    +"BRL": 5.289527043
    +"RUB": 81.564224077
    +"HRK": 8.7759937756
    +"JPY": 143.5257226388
    +"THB": 39.7757815816
    +"CHF": 1.2808270854
    +"EUR": 1.1788560381
    +"MYR": 5.3949167728
    +"BGN": 2.3056066393
    +"TRY": 7.8628518885
    +"CNY": 9.1887112746
    +"NOK": 11.6008864997
    +"NZD": 1.9708115245
    +"ZAR": 18.5665110577
    +"USD": 1.3194935634
    +"MXN": 24.9190125902
    +"SGD": 1.7781864479
    +"AUD": 1.8868769746
    +"ILS": 4.5609940114
    +"KRW": 1530.4380629038
    +"PLN": 5.0153251285
  }
}

All of which is fine.

However what I want to do is to get hold the rates themselves and present them in a simple table.

I have tried to json_decode $rsp and I get

json_decode() expects parameter 1 to be string, object given

3 Answers 3

1
$lookup = new ExchangeRatesAPI();
$rsp  = $lookup->setBaseCurrency('GBP')->fetch();
dd(json_decode($rsp->getRates());

method getRates() will return rates as array - more on ExchangeRatesAPI - response

Sign up to request clarification or add additional context in comments.

3 Comments

If I use $rsp = $lookup->setBaseCurrency('GBP')->getRates(); I get an empty variable. If I add fetch at the end it gives an error.
Got it. I chained the getRates rather than realising it was an internal function, so if I add $rt = $rsp->getRates(); I get the array.
Just for clarity here is what works: $lookup = new ExchangeRatesAPI(); $rsp = $lookup->setBaseCurrency('GBP')->fetch(); $rt = $rsp->getRates(); dd($rt); Thanks everyone
1

Already $rsp contains an object. So you cant decode it again. For getting the rates

dd($rsp->rates);

Comments

0

you can do:

$rates = $rsp->getRates();

And a loop through the rates.

Source of BenMajor\ExchangeRatesAPI\Response: https://github.com/benmajor/ExchangeRatesAPI/blob/master/src/Response.php

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.